91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

startactivityforresult與數據傳遞的關系

小樊
82
2024-09-02 19:51:01
欄目: 編程語言

startActivityForResult 是 Android 中用于啟動一個新的 Activity,并在該 Activity 結束時返回結果的方法。這種機制允許在兩個 Activity 之間進行數據傳遞。以下是 startActivityForResult 與數據傳遞的關系:

  1. 啟動新 Activity:在當前 Activity 中,使用 startActivityForResult 方法啟動一個新的 Activity。你需要傳遞一個 Intent 對象,該對象包含了要啟動的 Activity 的類名和要傳遞給新 Activity 的數據。同時,你還需要提供一個請求碼(requestCode),用于標識這次請求。
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("key", "value"); // 將數據添加到 Intent 中
startActivityForResult(intent, REQUEST_CODE);
  1. 處理新 Activity:在新 Activity 中,你可以通過 getIntent() 方法獲取傳遞過來的 Intent 對象,并從中提取數據。然后,根據需要處理這些數據。
Intent intent = getIntent();
String value = intent.getStringExtra("key");
// 處理數據
  1. 返回結果:在新 Activity 中,當你完成操作并需要返回結果時,可以使用 setResult 方法設置結果碼(resultCode)和一個包含返回數據的 Intent 對象。然后,調用 finish() 方法結束新 Activity。
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", "result_value");
setResult(RESULT_OK, resultIntent);
finish();
  1. 接收結果:在當前 Activity 中,重寫 onActivityResult 方法以接收新 Activity 返回的結果。這個方法會在新 Activity 結束時被調用。你可以通過檢查請求碼(requestCode)和結果碼(resultCode)來確定是否接收到了正確的結果。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        String resultValue = data.getStringExtra("result_key");
        // 處理返回的數據
    }
}

總之,startActivityForResult 與數據傳遞的關系主要體現在以下幾點:

  • 使用 startActivityForResult 方法啟動新 Activity,并將數據添加到 Intent 中。
  • 在新 Activity 中,通過 getIntent() 方法獲取傳遞過來的數據。
  • 在新 Activity 中,使用 setResult 方法設置返回結果,并通過 finish() 方法結束新 Activity。
  • 在當前 Activity 中,重寫 onActivityResult 方法以接收新 Activity 返回的結果。

0
望城县| 台东市| 屏东县| 旌德县| 远安县| 石台县| 扬州市| 如皋市| 丰台区| 梓潼县| 万安县| 定西市| 迁安市| 平乐县| 景泰县| 大足县| 同心县| 东港市| 莆田市| 商城县| 万州区| 色达县| 林芝县| 陕西省| 周口市| 喀喇沁旗| 凤阳县| 德安县| 汝阳县| 德兴市| 芜湖市| 德惠市| 台江县| 永春县| 柯坪县| 青州市| 栾城县| 广昌县| 开阳县| 阿克| 汝州市|