onBackPressedDispatcher?.onBackPressed()
我对片段中的实现有点困惑。
我有一个活动和一个片段。
我在片段中有一系列操作 - >当用户按下“后退”按钮时,我需要显示一个对话框,询问:“您确定吗?” 当用户点击“Yes”后,你需要执行onBackPressed。
为此,我在我的片段中做了 ->
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
showAlertDialog(
message = getString(R.string.myText),
dialogCallback = object : AlertDialogInterface {
override fun onAlertDialogButtonClicked(alertDialog: AlertDialog?) {}
override fun onPositiveButtonClicked(alertDialog: AlertDialog?) {
isEnabled = false
alertDialog?.dismiss()
activity?.onBackPressedDispatcher?.onBackPressed()
}
override fun onNegativeButtonClicked(alertDialog: AlertDialog?) {
alertDialog?.dismiss()
}
}
)
}
}
activity?.onBackPressedDispatcher?.addCallback(
this,
callback
)
}
...
我猜测当用户在对话框上单击“是”时,它会触发一个事件onPositiveButtonClicked
,并执行onBackPressed
我调用此行 ->activity?.onBackPressedDispatcher?.onBackPressed()
但这会导致循环而不是返回。
我在这里错过了什么?
这就是它应该如何工作而不循环