android中的startactivityforresult怎么使用

小億
90
2023-07-05 22:37:32

在Android中,startActivityForResult()方法用于啟動(dòng)一個(gè)新的Activity,并且希望在新的Activity關(guān)閉后獲取返回的結(jié)果數(shù)據(jù)。

使用startActivityForResult()方法的步驟如下:

  1. 在當(dāng)前Activity中調(diào)用startActivityForResult()方法來(lái)啟動(dòng)新的Activity。例如:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);

其中,REQUEST_CODE是一個(gè)自定義的整數(shù),用于標(biāo)識(shí)啟動(dòng)的Activity。

  1. 在新的Activity中,當(dāng)需要返回結(jié)果時(shí),可以通過(guò)以下代碼設(shè)置返回的結(jié)果數(shù)據(jù):
Intent intent = new Intent();
intent.putExtra("result", resultData); // 將結(jié)果數(shù)據(jù)放入Intent中
setResult(Activity.RESULT_OK, intent); // 設(shè)置返回結(jié)果
finish(); // 關(guān)閉當(dāng)前Activity

其中,resultData是你希望返回的結(jié)果數(shù)據(jù)。

  1. 在當(dāng)前Activity中,通過(guò)重寫onActivityResult()方法來(lái)處理返回的結(jié)果數(shù)據(jù)。例如:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
// 處理返回的結(jié)果數(shù)據(jù)
String result = data.getStringExtra("result");
// ...
}
}

在onActivityResult()方法中,可以根據(jù)requestCoderesultCode來(lái)判斷返回的結(jié)果是否是我們所期望的。然后可以通過(guò)data參數(shù)獲取返回的結(jié)果數(shù)據(jù)。

這就是使用startActivityForResult()方法的基本步驟,通過(guò)這種方式,可以在不同的Activity之間傳遞數(shù)據(jù)并獲取返回的結(jié)果數(shù)據(jù)。

0