2014-10-17 34 views
-1

我在這件事情我的頭撞了幾個小時。我有3個活性,所述活性的開放B和C必須通過數據到活動A. 在活性A,I運行startActivityForResult:Android ActivityForResult之間的3個活動

public static final int REQ_CODE_ACT3 = 2; 
@Override 
public void onClick(View v) { 
    Intent intent = null; 
intent = new Intent(A.this, B.class); 
startActivityForResult(intent, REQ_CODE_ACT3); 
} 

然後B,將數據傳遞給C.

Intent singc = new Intent(B.this, C.class); 
       Bundle extras = new Bundle();     
       singc .putExtra("cto", d.cto); 
       singc .putExtra("colore", d.colore);       
       singc .putExtras(extras); 
       startActivity(singc); 
       finish(); 

最後,C應該將數據傳遞給A. 但數據沒有傳遞

lista.setOnItemClickListener(new OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

       Dettaglio d = dettagli.get(position); 
       Intent intent=new Intent(); 
       intent.putExtra("cto", d.cto); 
       intent.putExtra("colore", d.colore); 
       setResult(RESULT_OK,intent); 
       finish(); 

      } 
     }); 
+1

如果B打開C,那麼您需要讓C將附加內容傳遞給B,然後在B中打電話給活動結果以將信息傳遞給A. – MrPancake 2014-10-17 16:01:12

回答

0
  • 在答:startActivityforResult(B)

  • B中
  • :startActivityForResult(C)

  • 當C完成B中創建結果調用的setResult和完成活動ç
  • 覆蓋onActivityResult,並得到你想要的東西從C +在一個對的setResult A +完成活動B
  • 覆蓋onActivityResult得到的結果從B.

返回如果你需要一些示例代碼,或者還是有問題,請評論。

+0

感謝您的意見。 – user3608814 2014-10-18 14:49:48