我有一個啟動 Activity1 的 MainActivity。當 Activity1 回傳 MainActivity 時,啟動 Activity2。當 Activity2 回傳到 MainActivity 時,Activity1 再次啟動。
我收到以下錯誤“型別檢查遇到遞回問題。最簡單的解決方法:明確指定宣告的型別”你是怎么做到的
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val intent = Intent(this@MainActivity, Activity1::class.java)
Activity1ResultLauncher.launch(intent)
}
val Activity1ResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == Activity.RESULT_OK) {
val intent = Intent(this@MainActivity, Activity2::class.java)
Activity2ResultLauncher.launch(intent)
}
}
val Activity2ResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == Activity.RESULT_OK) {
val intent = Intent(this@MainActivity, Activity1::class.java)
Activity1ResultLauncher.launch(intent)
}
}
}
uj5u.com熱心網友回復:
由于泛型型別的復雜關系,編譯器遇到了問題。它建議您修復它的是提供顯式屬性型別,而不是讓編譯器推斷它們。這應該可以解決您的問題:
val Activity1ResultLauncher: ActivityResultLauncher<Intent> = registerForActivityResult(
//...
val Activity2ResultLauncher: ActivityResultLauncher<Intent> = registerForActivityResult(
//...
By the way, property names should start with a lowercase letter by convention.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493070.html
