Danny Meier
- Forum-Beiträge: 7
08.12.2010, 11:37:26 via Website
08.12.2010 11:37:26 via Website
Hallo zusammen,
Mein Workflow den ich mit startActivityForResult erreichen möchte:
Habe eine Listenansicht mit den Listeneinträgen. Durch einen Button/Menubutton starte ich eine SubActivity für das Erzeugen/Ändern eines Listeneintrags.
Nachdem alles ausgefüllt ist soll wieder Listenansicht erscheinen mit den aktualisierten Einträgen, sofern was geändert hat.
Mein Problem ist, dass wenn ich von der SubActivity zurückkehren will, dass ich zweimal den Ok, oder Cancel Button klicken muss bis wieder die Listenansicht erscheint. Habe den Code stark reduziert. Jedoch tritt dieser Effekt immer noch auf:
In der MainActivity.java
In der AlarmItem.java
Die onSaveClick Methode wird aufgerufen wenn der Button geklickt wird. Nur, beim erstmaligen klicken, wird der Inhalt von onSaveClick() ausgeführt, die Activity beenedet sich aber nicht und bleibt bestehen. Wird der Button ein zweites Mal geklickt, wird der Inhalt von onSaveClick() erneut ausgeführt, die Activity beendet aber und kehrt zur vorherigen Listenansicht zurück.
Woran liegt das? Wo liegt mein Fehler?
Vielen Dank
Gruss Danny
Mein Workflow den ich mit startActivityForResult erreichen möchte:
Habe eine Listenansicht mit den Listeneinträgen. Durch einen Button/Menubutton starte ich eine SubActivity für das Erzeugen/Ändern eines Listeneintrags.
Nachdem alles ausgefüllt ist soll wieder Listenansicht erscheinen mit den aktualisierten Einträgen, sofern was geändert hat.
Mein Problem ist, dass wenn ich von der SubActivity zurückkehren will, dass ich zweimal den Ok, oder Cancel Button klicken muss bis wieder die Listenansicht erscheint. Habe den Code stark reduziert. Jedoch tritt dieser Effekt immer noch auf:
In der MainActivity.java
1@Override
2 public boolean onOptionsItemSelected(MenuItem item) {
3 switch(item.getItemId()) {
4 case R.id.menu_add_alarm:
5 AlarmSetting.alarmSettingTransfer = null;
6 Intent alarmItemIntent = new Intent(getApplicationContext(), AlarmItem.class);
7 startActivityForResult(alarmItemIntent, AlarmItem.INTENT_RESULT_ALARM_ITEM);
8 startActivity(alarmItemIntent);
9 return true;
10 default:
11 return false;
12 }
13 }
14
15 @Override
16 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
17 if (resultCode == RESULT_CANCELED)
18 return;
19
20 switch (requestCode) {
21 case AlarmItem.INTENT_RESULT_ALARM_ITEM:
22 loadAlarmList();
23 Toast.makeText(getApplicationContext(), "Back", Toast.LENGTH_SHORT).show();
24 break;
25 }
26
27 super.onActivityResult(requestCode, resultCode, data);
28 }
2 public boolean onOptionsItemSelected(MenuItem item) {
3 switch(item.getItemId()) {
4 case R.id.menu_add_alarm:
5 AlarmSetting.alarmSettingTransfer = null;
6 Intent alarmItemIntent = new Intent(getApplicationContext(), AlarmItem.class);
7 startActivityForResult(alarmItemIntent, AlarmItem.INTENT_RESULT_ALARM_ITEM);
8 startActivity(alarmItemIntent);
9 return true;
10 default:
11 return false;
12 }
13 }
14
15 @Override
16 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
17 if (resultCode == RESULT_CANCELED)
18 return;
19
20 switch (requestCode) {
21 case AlarmItem.INTENT_RESULT_ALARM_ITEM:
22 loadAlarmList();
23 Toast.makeText(getApplicationContext(), "Back", Toast.LENGTH_SHORT).show();
24 break;
25 }
26
27 super.onActivityResult(requestCode, resultCode, data);
28 }
In der AlarmItem.java
1public void onSaveClick(View view) {
2 // Speichere AlarmSetting wenn OK ...
3 AlarmSetting.alarmSettingTransfer = alarmSetting;
4 this.setResult(RESULT_OK);
5 this.finish();
6 }
2 // Speichere AlarmSetting wenn OK ...
3 AlarmSetting.alarmSettingTransfer = alarmSetting;
4 this.setResult(RESULT_OK);
5 this.finish();
6 }
Die onSaveClick Methode wird aufgerufen wenn der Button geklickt wird. Nur, beim erstmaligen klicken, wird der Inhalt von onSaveClick() ausgeführt, die Activity beenedet sich aber nicht und bleibt bestehen. Wird der Button ein zweites Mal geklickt, wird der Inhalt von onSaveClick() erneut ausgeführt, die Activity beendet aber und kehrt zur vorherigen Listenansicht zurück.
Woran liegt das? Wo liegt mein Fehler?
Vielen Dank
Gruss Danny
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.