2016-03-24 6 views
0

I FirstActivity haben, die SecondActivity über Intent nenntAndroid setActivtyForResult erhalten führen zurück zur ersten Aktivität

Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
Bundle extras = new Bundle(); 
extras.putString("param1","aaa"); 
extras.putString("param2","bbb"); 
intent.putExtras(extras); 
startActivityForResult(intent, 1); 

Nach SecondActivity Finish, ich möchte sendet die SecondActivity einige Variablen in die FirstActivity. Dann rufe ich finih() auf, damit es zur FirstActivity zurückkehrt. Wie kann SecondOctivity Variablen senden und das Ergebnis in FirstActivity erhalten?

Antwort

0

Just another machen Intent in Sie SecondActivity
Zuerst sollten Sie Variablen aus FirstActivity

Bundle extras = getArguments(); 
    String extra1 = extras.getString("param1"); 
    String extra2 = extras.getString("param2"); 


Dann Absicht machen FirstActivity

Intent intent = new Intent(getApplicationContext(), FirstActivity.class); 
intent.putExtra("param1","aaa"); 
intent.putExtra("param2","bbb"); 
startActivity(intent); 
finish(); 

Ich hoffe, dass im Ihr Problem beheben undestand.

+0

Das Problem ist, es wird onCreate-Methode auf der FirstActivity aufrufen. Ich werde nicht anrufen onCreate wieder – NoName2

+0

@MeGoodGuy ich denke, er erhalten Benachrichtigung von Ihrer Antwort ... keine Notwendigkeit, meine Antwort zu spammen ok ??? !! –

+0

Ja, tut mir leid. Aber antworten Sie nicht, wenn Sie nicht wissen -_- – MeGoodGuy

0

Hier ist eine Probe und verändern.

hinzufügen eine Überschreibung onActivityResult auf der ersten Aktivität:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 0) //The request code you use on statActivityForResult (Any integer value) 
    { 
     if(resultCode == RESULT_OK) 
     { 
      String stringFromSecondActivity = data.getExtras().getString("Key"); 
     } 
    } 
} 

Starten Sie die zweite Aktivität wie, was Sie auf dem Laufenden

Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
Bundle extras = new Bundle(); 
extras.putString("param1","aaa"); 
extras.putString("param2","bbb"); 
intent.putExtras(extras); 
startActivityForResult(intent, 0); //This is the request code to check on onActivityResult when you retrieve values from the SecondActivity after finishing it. 

Zu Ihrer zweiten Aktivität, bevor sie erledigt wird, sollten Sie die Absicht erhalten und fügen Sie einige Extras hinzu.

getIntent().putExtra("Key", "theStringForTheFirstActivity"); 
setResult(RESULT_OK, getIntent()); 
finish(); 

Wenn die zweite Aktivität beendet ist, wird es automatisch Ihre onActivityResult auf Ihrer ersten Aktivität ausführen und dort können Sie die Werte, die Sie aus der zweiten Aktivität benötigen.

Verwandte Themen