我有活動A,B和C.活動A和B都在OptionsMenu中有一個選項來調用活動C.但是,如果用戶從活動C調用活動C活動BI希望他們在活動C完成時返回到活動A.我可以在從活動B調用活動之後使用finish(),但如果從活動B調用目標,我將如何將值返回給活動A?當呼叫活動結束時從活動傳回一個值
總括來說,我想:
用戶是在活動乙 - >通話活動Ç - >用戶返回到活性的,它從活動接收值C.
我有活動A,B和C.活動A和B都在OptionsMenu中有一個選項來調用活動C.但是,如果用戶從活動C調用活動C活動BI希望他們在活動C完成時返回到活動A.我可以在從活動B調用活動之後使用finish(),但如果從活動B調用目標,我將如何將值返回給活動A?當呼叫活動結束時從活動傳回一個值
總括來說,我想:
用戶是在活動乙 - >通話活動Ç - >用戶返回到活性的,它從活動接收值C.
受理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();
這正是我正在尋找的內容。謝謝! – 2015-03-19 05:25:01
@ user3264455以及如果按下返回按鈕表單活動A會發生什麼? – Raghunandan 2015-03-19 05:26:18
@Raghunandan我想,它會退出應用程序。我正在爲一項任務製作一個非常簡單的應用程序,以便在這種情況下可以正常工作。這是我打算處理我在學校以外的應用程序。 – 2015-03-19 05:35:54
可以使用方法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);
所以你說的覆蓋活動B中的onActivityResult()方法?我會做些什麼來讓它回傳給A? – 2015-03-19 05:24:21
A也一樣。當您從A啓動Activity C時,從A調用startActivityForResult()並在A中覆蓋onActivityResult()以收集由Activity C傳遞的結果。 – 2015-03-19 05:25:31
你可以使用localbroadcastreceiver – Raghunandan 2015-03-19 05:21:00