2016-04-05 16 views
0

Ich habe ein kleines Problem mit meinen Aktivitäten ... Irgendwie wird meine onActivityResult-Methode nie aufgerufen, obwohl ich denke, dass ich alles eingerichtet habe und keine "nohistory" oder so etwas in meinem Manifest.onActivityResult löst keinen Logger aus

Aktivität A:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.d("ASDSA","ASDSA"); 
} 

Aktivität B:

Intent intent = new Intent(AddStockActivity.this, MainActivity.class); 
       intent.putExtra("stock", stock); 
       setResult(Activity.RESULT_OK, intent); 
       finish(); 

The Log nie ausgeführt wird ... Was ist falsch mit meiner Implementierung?

EDIT: Das ist, wie ich die Aktivität nennen:

Intent intent = new Intent(MainActivity.this, AddActivity.class); 
       startActivityForResult(intent, Activity.RESULT_OK); 

Immer noch keine Wirkung auf die Protokollierung. Ich feuern beide Absichten auf einen Knopf klicken übrigens.

+0

Zeigen Sie uns den Code, wo Sie 'Absicht' von Aktivität A zu Aktivität B auslösen –

+2

Haben Sie Ihre Aktivität B für das Ergebnis gestartet oder es ist ein normaler Start? – SaNtoRiaN

Antwort

1

Sie müssen startActivityForResult von Aktivität A nennen statt startActivity während Intent

+0

Ich habe meinen ersten Post bearbeitet, können Sie das überprüfen? – Ihara

1

starten Aktivität B für Ergebnis wie dieses

Brennen
Intent intent = new Intent(ActivityA.this, ActivityB.class); 
startActivityForResult(intent, requestCode); 

wo requestCode eine ganze Zahl ist zwischen verschiedenen Anträgen zu unterscheiden.

+0

Ich habe meinen ersten Post bearbeitet, können Sie das überprüfen? – Ihara

+0

Ändern Sie den Anforderungscode zum Beispiel auf 1, es würde funktionieren. – SaNtoRiaN

0

Sie benötigen ActivityB von ActivityA wie diese berufen -

Intent intent = new Intent(ActivityA.this, ActivityB.class); 
startActivityForResult(intent, <your_request_code_here>); 

Sie brauchen nicht diese in schreiben ActivityB

Intent intent = new Intent(AddBienenstockActivity.this, MainActivity.class); 
intent.putExtra("stock", stock); 

Nachdem der Auftrag nur

  setResult(Activity.RESULT_OK, intent); 
      finish(); 

tun von ActivityB

+0

Ich habe meinen ersten Post bearbeitet, können Sie das überprüfen? – Ihara

+0

Bitte beachten Sie meine Post sorgfältig. Sie müssen nicht verwenden - Intent intent = new Intent (AddBienenstockActivity.this, MainActivity.class); intent.putExtra ("Lager", Lagerbestand); Verwenden Sie einfach - setResult (Activity.RESULT_OK, intent); Ende(); –

0

Okey Jungs Ich habe es herausgefunden. Ich musste meinen Code in diesen ändern:

Intent intent = new Intent(MainActivity.this, AddActivity.class); 
startActivityForResult(intent, 1); 

Jeder kann erklären, warum?

Verwandte Themen