activity間的數據傳遞

2018-08-11 11:29 更新

在Activity_A中啟動Activity_B

實現Activity_A和Activity_B間的對話

一、信息僅從Activity_A傳遞到Activity_B

Activity_A.java :

Intent intent = new Intent(Activity_A.this,Activity_B.class);
intent.putExtra(key,value);
startActivity(intent);

將value信息,以鍵-值的形式,附加在Intent對象上發(fā)送過去,value可以是任意數據。

Activity_B.java :

getIntent().get類型Extra(key,defaultValue); 
//類型表示接收信息的類型,比如getStringExtra(...)等

通過此行代碼返回傳遞過來的值,明顯第二個參數為默認值。

二、Activity_B同時返回信息到Activity_A

Activity_A.java :

Intent intent = new Intent(Activity_A.this,Activity_B.class);
intent.putExtra(key,value);
startActivityForResult(intent,requestCode);

可以看到,啟動Activity_B的方法更改成startActivityForResult(...)。

requestCode表示請求代碼,當Activity_A啟動多個不同類型的子activity時,用于區(qū)分各消息反饋。

在Activity_A中還需要重寫onActivityResult(...)方法,來獲取Activity_B回傳的值。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (data != null) {
        value = data.get類型Extra(key, defaultValue); // value表示回傳的值
    }
}

Activity_B.java :

getIntent().get類型Extra(key,defaultValue); 
Intent data = new Intent();
data.putExtra(key,value);
setResult(resultCode,data);

可以看出,子activity通過setResult(...)方法將信息返回給父activity。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號