基本上我有一個包含 3 個不同片段的 MainActivity,在其中一個片段中,我可以單擊一個按鈕,該按鈕使用簡單的 RadioGroup 選項打開一個新活動,每當我單擊其中一個選項時,它都會自動關閉活動。現在,我的問題是將所選資料傳輸到片段,因此我可以根據我選擇的 RadioButton 更新它。
我為此最接近的解決方案是startActivityForResult,但似乎不再有效......
uj5u.com熱心網友回復:
來自官方指南檔案:
在您的片段中,創建并注冊一個啟動器
private val launcher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result: ActivityResult ->
handleResult(result)
}
創建一個方法來處理ActivityResult:
fun handleResult(result: ActivityResult) {
// Handle the returned result as you do in onActivityResult()
// Use result.resultCode to determine OK or Cancelled result
if (result.resultCode == Activity.RESULT_OK) {
val resultIntent = result.data
// Use returned Intent
}
}
像這樣啟動OtherActivityfor 結果:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// ...
val selectButton = findViewById<Button>(R.id.select_button)
selectButton.setOnClickListener {
// Launch activity from whom you want the result
val intent = Intent(requireContext(), OtherActivity::class.java)
launcher.launch(intent)
}
}
在 中OtherActivity,當您準備好發回結果時,創建一個意圖并將資料放入其中。
val intent = Intent()
intent.putExtra("YOUR_KEY", YOUR_DATA_HERE)
setResult(Activity.RESULT_OK, intent)
finish()
在此之后,您將在handleResult()方法中獲得結果。
uj5u.com熱心網友回復:
您可以使用SharedPreferences來保存單選按鈕的狀態,或者您可以創建一個回呼函式,在您處理片段時觸發主要活動并將單選按鈕的狀態作為引數傳遞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/415022.html
標籤:
上一篇:在導航組件片段中接收片段結果
