我有一个Android应用程序,它有一个计时器,当到期时播放声音。
当用户试图离开片段时,我有以下代码来捕获;
public void onPause() {
super.onPause();
if (gameOn == 1) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage("Are you sure you want to cancel the match?")
.setCancelable(false)
.setTitle("Cancel match?")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
我遇到的问题是我想添加一个额外的选项(是/否,我知道该怎么做),禁止用户导航而不做出选择(UI可能意味着用户意外导航从片段,这是一个失败的安全,你真的确定问题)。
onPause会触发警告对话框弹出,但在其后面已经加载了新片段,据我所知,onPause是用户离开片段时触发的第一个事件。 / p>
所有帮助表示赞赏。
答案 0 :(得分:1)
当调用onPause()
时,撤消transaction
已经太晚了。它承诺了。我无法看到您fragment
中有多少点击选项可以离开,但我建议您添加onClickListeners
这个alert dialogue
,只要您需要额外的"检查&#34 34 ;.例如,您可以将其设为单独的方法showDialogue
,然后将代码放在那里,然后将其称为onclick
。所以你不会重复代码。您只需输入fragmenttransaction
代码即可点击肯定按钮。
也许您还需要覆盖backpress
。请参阅此link