他のアクティビティが値を送信している間に、アクティビティを一時停止する方法を知る必要があります。 私のコードでは、メインアクティビティが2番目のアクティビティを呼び出し、2番目のアクティビティが結果を送信するので、メインアクティビティは2番目のアクティビティから結果を受け取るまで待つのが理想です。他のアクティビティが結果を返すまで、アクティビティを一時停止する方法はありますか?
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();
}
});
}
}
今問題は、第二の活性値を割り当てることができる前に主な活動は、STR = NULLを印刷することであるSTR = "こんにちは"
問題はなんですか? onActivityResult内でToast.makeTextを移動するだけで正しい値が出力されます。 – Wukash
あなたはすでに正しい方向に進んでいます。今何が問題なの? –
あなたはstartActivityForResultでそれを行うことができます....既にonstore.overflow.com/questions/10407159/how-to-manage-startactivityforresult-on-android – jonhid