AnnaBauer21
Neues Mitglied
- 2
Hallo Leute,
ich habe ein Problem mit der onCreate() Methode der Activity 1.
Ich rufe in Activity 1 durch startActivityForResult() Activity 2 auf, mache hier eine Eingabe, und liefere den Wert an Activity 1 zurück.
Bei Activity 1 wird aber die onCreate() Methode wieder neu aufgerufen.
Damit habe ich ein Problem, da ich dort eine Action bar initialisiere, in der manche Buttons deaktiviert sind und diese erst später aktiviere.
Nach dem Aufruf von startActivityForResult() wird in der onCreate() Methode die ActionBar wieder neu initialisiert und nun sind die zuvor aktivierten Buttons wieder deaktiviert.
Dieses Problem habe ich nicht im Emulator (API 16 & API 18) sondern nur auf meinem Samsung Galaxy S3 (API 18).
Bitte helft mir!
Activity 1:
Activity 2:
Manifest:
Vielen vielen Dank schon mal im Voraus!
Liebe Grüße
Anna
ich habe ein Problem mit der onCreate() Methode der Activity 1.
Ich rufe in Activity 1 durch startActivityForResult() Activity 2 auf, mache hier eine Eingabe, und liefere den Wert an Activity 1 zurück.
Bei Activity 1 wird aber die onCreate() Methode wieder neu aufgerufen.
Damit habe ich ein Problem, da ich dort eine Action bar initialisiere, in der manche Buttons deaktiviert sind und diese erst später aktiviere.
Nach dem Aufruf von startActivityForResult() wird in der onCreate() Methode die ActionBar wieder neu initialisiert und nun sind die zuvor aktivierten Buttons wieder deaktiviert.
Dieses Problem habe ich nicht im Emulator (API 16 & API 18) sondern nur auf meinem Samsung Galaxy S3 (API 18).
Bitte helft mir!
Activity 1:
Code:
public class MainActivity extends Activity implements OnClickListener {
...
ActionBar actionBar;
boolean iCheckNewState = true; [COLOR=seagreen]//Hieran sehe ich, dass onCreate()[/COLOR] [COLOR=seagreen]immer neu durchlaufen wird[/COLOR]
boolean iFileIsSelected = false;
...
@Override
[B]protected void onCreate(Bundle savedInstanceState)[/B] {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
[COLOR=seagreen] //Hier zeigt es immer true, obwohl ich die globale Variable auf false ändere[/COLOR]
[COLOR=seagreen] //Trotz erneutem Durchlauf der onCreate() sollte es hier doch false zeigen... oder?[/COLOR]
Toast.makeText(this, "" + iCheckNewState, 1000).show();
if (iCheckNewState == true) {
actionBar = getActionBar();
actionBar.setCustomView(R.layout.actionbar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
iCheckNewState = false;
}
...
}
@Override
[B]public void onClick(View v)[/B] {
switch (v.getId()) {
case R.id.buOK:
[COLOR=seagreen]//Aufruf der Activity 2[/COLOR]
Intent intent = new Intent(MainActivity.this, SelectFile.class);
startActivityForResult(intent, 0);
break;
case R.id.buStart: [COLOR=seagreen]//<-- Der deaktivierte Button der ActionBar[/COLOR]
if (iFileIsSelected == true) {
[COLOR=seagreen]//TODO[/COLOR]
} else {
Toast.makeText(this, "Öffnen sie zuerst eine Datei!", 1000).show();
}
}
...
}
@Override
[B]protected void onActivityResult(int requestCode, int resultCode, Intent data[/B]) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 0) {
...
iFileIsSelected = true; [COLOR=seagreen]//Aktivieren den Button der ActionBar[/COLOR]
}
}
}
Activity 2:
Code:
public class SelectFile extends Activity implements OnClickListener {
private Intent iIntent;
...
@Override
[B]protected void onCreate(Bundle savedInstanceState)[/B] {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_file);
iIntent = getIntent();
...
}
...
@Override
[B]public void onClick(View v)[/B] {
switch (v.getId()) {
case R.id.selected:
[COLOR=seagreen] //Daten zurück an Activity 1 geben[/COLOR]
iIntent.putExtra("fileData", products);
setResult(RESULT_OK, iIntent);
finish();
break;
}
}
}
Manifest:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="[URL]http://schemas.android.com/apk/res/android[/URL]"
package="de.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/appicon"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter android:label="@string/app_name" >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SelectFile"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Vielen vielen Dank schon mal im Voraus!
Liebe Grüße
Anna