2015-03-19 127 views
0

我有活動A,B和C.活動A和B都在OptionsMenu中有一個選項來調用活動C.但是,如果用戶從活動C調用活動C活動BI希望他們在活動C完成時返回到活動A.我可以在從活動B調用活動之後使用finish(),但如果從活動B調用目標,我將如何將值返回給活動A?當呼叫活動結束時從活動傳回一個值

總括來說,我想:

用戶是在活動乙 - >通話活動Ç - >用戶返回到活性的,它從活動接收值C.

+0

你可以使用localbroadcastreceiver – Raghunandan 2015-03-19 05:21:00

回答

1

受理A和完成活動C.將數據發送到活動A使用intent.putExtra();

Intent i=new Intent(ActivityC.this,ActivityA.class); 
i.putExtra("Key","value you want to pass to activity A"); 
startActivity(i); 
finish(); 
+0

這正是我正在尋找的內容。謝謝! – 2015-03-19 05:25:01

+0

@ user3264455以及如果按下返回按鈕表單活動A會發生什麼? – Raghunandan 2015-03-19 05:26:18

+0

@Raghunandan我想,它會退出應用程序。我正在爲一項任務製作一個非常簡單的應用程序,以便在這種情況下可以正常工作。這是我打算處理我在學校以外的應用程序。 – 2015-03-19 05:35:54

0

可以使用方法startActivityForResult()開始活動ç

static private final int GET_TEXT_REQUEST_CODE = 1; 
Intent intent = new Intent(this, C.class); 
startActivityForResult(intent,GET_TEXT_REQUEST_CODE); 

,然後覆蓋onActivityResult()方法

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.i("B", "Entered onActivityResult()"); 

    if(resultCode == Activity.RESULT_OK && requestCode == GET_TEXT_REQUEST_CODE){ 
     myTextView.setText(data.getStringExtra("MY_VALUE")); 
    } 
} 

找回數據。在活動c您需要設置像數據(Docs

- 從活動ç

Intent intent = new Intent(); 
intent.putExtra("MY_VALUE",input); 
setResult(Activity.RESULT_OK, intent); 
+0

所以你說的覆蓋活動B中的onActivityResult()方法?我會做些什麼來讓它回傳給A? – 2015-03-19 05:24:21

+0

A也一樣。當您從A啓動Activity C時,從A調用startActivityForResult()並在A中覆蓋onActivityResult()以收集由Activity C傳遞的結果。 – 2015-03-19 05:25:31