0

私はアンドロイドでかなり新しいです、そして、私は意図について確信がありません。

ABとCの3つのアクティビティがあり、アクティビティAが異なる時間にBとCの両方からバンドルを受信する必要がある場合(たとえば、BからAへの移動、またはCからAへの移動)、どうすればよいですか?

うまくいけば、この質問はあまり曖昧ではありません...

4

2 に答える 2

0

アクティビティ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");
        }
     }
}
于 2012-03-29T17:41:27.710 に答える
-1

アクティビティ B または C からいつでもアクティビティ A を呼び出すことができます。現在のコンテキストと呼び出したいアクティビティを送信する新しいインテントを作成するだけです。例えば:

Intent i = new Intent(this, ActivityB.class);

次に、次を呼び出してインテントを開始します。

startActivity(i);

すべてのアクティビティがマニフェストで定義されていることを確認する必要があることに注意してください。

于 2012-03-29T17:48:02.947 に答える