Ich muss wissen, wie man eine Aktivität pausiert, während die andere Aktivität einen Wert sendet. In meinem Code ruft die Hauptaktivität die zweite Aktivität auf und die zweite Aktivität sendet das Ergebnis so ideal, dass die Hauptaktivität warten sollte, bis sie das Ergebnis der zweiten Aktivität empfängt.So pausieren Sie eine Aktivität bis zu einer anderen Aktivität Gibt ein Ergebnis zurück?
public class MainActivity extends AppCompatActivity {
public final static String key = "abc";
public final static String key1 = "abcd";
String abc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show();
send();
}
});
}
public void send() {
// Toast.makeText(MainActivity.this, "jsjaskb", Toast.LENGTH_SHORT).show();
// String str="this is";
String[] str = {"Blue", "Green", "Purple", "Red"};
Intent intent = new Intent(this, Second.class);
intent.putExtra(key, str);
startActivityForResult(intent, 1);
Toast.makeText(MainActivity.this, ""+abc, Toast.LENGTH_SHORT).show();
// Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
abc = extras.getString(key1);
// txtinput1.setText(str);
// Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show();
}
}
}
public class Second extends AppCompatActivity {
public final static String key="abc";
public final static String key1="abcd";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent=getIntent();
String[] msg=intent.getStringArrayExtra(key);
Toast.makeText(this, "" + msg[0], Toast.LENGTH_SHORT).show();
Button b1 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show();
String str = "hello";
Intent intent1 = new Intent();
intent1.putExtra(key1, str);
setResult(RESULT_OK, intent1);
finish();
}
});
}
}
Das Problem ist jetzt, dass die Haupttätigkeit druckt str = null, bevor der zweite Aktivität könnte den Wert str = "Hallo"
Was genau ist das Problem? Sie können Ihren Toast.makeText einfach in activityResult verschieben und es wird der korrekte Wert ausgegeben. – Wukash
Sie sind bereits auf dem richtigen Weg. Was ist das Problem jetzt? –
können Sie es mit startActivityForResult tun .... Bereits beantwortet http://StackOverflow.com/Questions/10407159/How-to-Manage-Startactivityforresult-on-android – jonhid