1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Activity reagiert nicht auf Result von Intent?!

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Prengepower, 22.03.2011.

  1. Prengepower, 22.03.2011 #1
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Hey!

    Ich möchte, dass nach dem eine aufgerufene PreferenceActivity ausgeführt wurde, eine Funktion ausgeführt wird.

    Die PreferenceActivity wird folgendermaßen aufgerufen, beendet und dann das RESULT abgefragt:

    Code:
    Intent j = new Intent(SubjectListView.this, Subjectchooser.class);
    			startActivityForResult(j, 20);
    Code:
    @Override
    	public void finish() {
    		updateSubjects();
    		
    		Intent data = new Intent();
    		setResult(RESULT_OK, data);
    		super.finish();
    	}
    Code:
    @Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		if (resultCode == RESULT_OK && requestCode == 10) {
    			Parser parser = new Parser();
    			parser.execute("");
    		}
    		
    		if (resultCode == RESULT_OK && requestCode == 20) {
    			try{
    				mDbAdapter.open();
    				fillData();
    			}catch (Exception e){
    				Log.i("Catch", e.toString());
    			}
    		}
    	}
    Aber es passiert einfach garnichts!?
     
  2. DerSeppel, 22.03.2011 #2
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Versuch mal nur finish() statt super.finish();
     
  3. Prengepower, 22.03.2011 #3
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Nope da macht er nen StackOverFlow..
     
  4. DerSeppel, 22.03.2011 #4
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Komisch. Ich mach das immer nur mit finish() ?
    Wird onActivityResult überhaupt aufgerufen?
     
  5. Prengepower, 22.03.2011 #5
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Ne leider nicht -.- Das komische ist, bei einem andere Intent - wo ich es genauso gemacht hab - funktioniert es O_o
     
  6. DerSeppel, 22.03.2011 #6
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Ah, sorry, jetzt seh ich auch was du machst! ^^ Du überlädst finish()! ^^

    Ich mach das immer in ner onClick oder so und rufe dann nur finish auf.

    Rufst du dein neues finish(); auch auf?
     
  7. Prengepower, 22.03.2011 #7
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Wie meinst du das?! ^^
     
  8. DerSeppel, 22.03.2011 #8
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Naja. Du überlädst doch hier die Funktion finish():

    @Override public void finish() { updateSubjects(); Intent data = new Intent(); setResult(RESULT_OK, data); super.finish(); }
    Und an irgendeiner Stelle willst du deine Activity beenden oder? Z.b. wenn ein Button gedrückt wird. Und an dieser Stelle musst du this.finish() bzw. nur finish() aufrufen.
     
  9. Prengepower, 22.03.2011 #9
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Naja die Funktion wird doch aufgerufen wenn ich die zurücktaste drücke dachte ich. Der soll die nur bei der "Rück"-Taste auf dem Handy aufrufen..
     
  10. DerSeppel, 22.03.2011 #10
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Nein, das wäre pause oder stop:

    public void finish ()

    Since: API Level 1

    Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().
     
  11. DerSeppel, 22.03.2011 #11
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Was du suchst, ist etwas in der Art:

    Code:
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
              finish();
            return true;
        }
    
        return super.onKeyDown(keyCode, event);
    }
     
  12. Prengepower, 22.03.2011 #12
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Mmh okay und wie kann ich das machen?! Das komische ist ja aber, dass meine Funtion updateSubjects(); beim Drücken der "Zurück"-Taste ausgeführt wird. Demnach muss ja die Funktion finish() aufgerufen werden.
    Die Frage ist halt warum nicht die Funktion in der anderen Activity gestartet wird O_o
     
  13. Prengepower, 22.03.2011 #13
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Selbst das geht nicht.. finish() wird zwar aufgerufen, aber es wird meine funktion fillData() in der anderen Activiy nicht ausgeführt :(
     
  14. DerSeppel, 22.03.2011 #14
    DerSeppel

    DerSeppel Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    16.03.2011
    Hast du mal eine Einzelschrittausführung gemacht? Dann siehst du doch, wo er rein springt und wo nicht.

    Mach dir an den relevanten Punkten Log-Ausgaben rein.
     
  15. Prengepower, 23.03.2011 #15
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    0
    Registriert seit:
    15.03.2011
    Phone:
    HTC Sensation
    Habs jetzt hinbekommen.. Hatte aus Versehen 2 Varianten zum Starten des Intents eingebaut - aber eins mit Result und das andere ohne. Doof nur das immer das aufgerufen wurde, bei dem kein Result verlangt wurde ^^

    Danke nochmal ;)
     

Diese Seite empfehlen