抑制从片段移开直到确认

时间:2018-03-10 17:13:13

标签: android android-fragments

我有一个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>

所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

当调用onPause()时,撤消transaction已经太晚了。它承诺了。我无法看到您fragment中有多少点击选项可以离开,但我建议您添加onClickListeners这个alert dialogue,只要您需要额外的"检查&#34 34 ;.例如,您可以将其设为单独的方法showDialogue,然后将代码放在那里,然后将其称为onclick。所以你不会重复代码。您只需输入fragmenttransaction代码即可点击肯定按钮。

也许您还需要覆盖backpress。请参阅此link