2012-03-29 24 views
0

私はアンドロイドでかなり新しいです。私はインテントについて確信がありません。2つの異なる活動からインテントを取得する

アクティビティABとCとアクティビティAが異なる時間にBとCの両方からバンドルを受け取る必要がある場合(例:BからA、CからAへの移動)、どうすればよいでしょうかそれをやって?あなたはBからいくつかのデータを持っているし、戻ってそれらを渡したいときは、次に

final int REQ_STARTB = 101; // anything non-zero 
    startActivityForResult(REQ_STARTB, new Intent(A.this, B.class)). 
    //Similar for C. 

を呼び出すことができるアクティビティAから活動Bを起動するには

うまくいけば、この質問はあまりにも漠然としていない...

+0

あなたはここに質問する前にあなたの質問を適切にフレーミングするために作業する必要があります –

+0

?彼の質問は完全にうまいです – dymmeh

+0

あなたのエキストラを入手して、それらがヌルでないかどうかをテストして、どのアクティビティが送信されているか知らずに作業できることを確認してください。あなたのアクティビティがアクティビティBまたはCから起動されているかどうかを知るためのブール – Houcine

答えて

0

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"); 
     } 
    } 
} 
-1

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

インテントi =新しいインテント(this、ActivityB.class);

その後呼び出すことで、あなたの意図を起動します。

startActivity(I);

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

関連する問題