私はアンドロイドでかなり新しいです、そして、私は意図について確信がありません。
ABとCの3つのアクティビティがあり、アクティビティAが異なる時間にBとCの両方からバンドルを受信する必要がある場合(たとえば、BからAへの移動、またはCからAへの移動)、どうすればよいですか?
うまくいけば、この質問はあまり曖昧ではありません...
私はアンドロイドでかなり新しいです、そして、私は意図について確信がありません。
ABとCの3つのアクティビティがあり、アクティビティAが異なる時間にBとCの両方からバンドルを受信する必要がある場合(たとえば、BからAへの移動、またはCからAへの移動)、どうすればよいですか?
うまくいけば、この質問はあまり曖昧ではありません...
アクティビティAからアクティビティBを開始するには、呼び出すことができます
final int REQ_STARTB = 101; // anything non-zero
startActivityForResult(REQ_STARTB, new Intent(A.this, B.class)).
//Similar for C.
次に、B からのデータがあり、それらを A に戻したい場合は、B から実行できます。
Intent I = new Intent()
I.putExtra("MyStringData", stringYouWantToReturn);
//and similar for other types
setResult(RESULT_OK);
finish();
したがって、Aに戻り、Aには次のようになります
public onActivityResult(int req, int res, Intent data) {
if(req == REQ_STARTB) {
if(res == RESULT_OK) {
String dataFromB = data.getStringExtra("MyStringData");
}
}
}
アクティビティ B または C からいつでもアクティビティ A を呼び出すことができます。現在のコンテキストと呼び出したいアクティビティを送信する新しいインテントを作成するだけです。例えば:
Intent i = new Intent(this, ActivityB.class);
次に、次を呼び出してインテントを開始します。
startActivity(i);
すべてのアクティビティがマニフェストで定義されていることを確認する必要があることに注意してください。