setCancelable()
次の機能を使用するだけです。
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
これにより、戻るボタンでダイアログが閉じられなくなりますが、使用することを選択した場合は「否定」ボタンはそのまま残ります。
あなたの利用規約に同意したくないユーザーはホームボタンを押すことができますが、Squonk のコメントに照らして、ユーザー契約の「取り消し」を防ぐ方法が 2 つあります。1 つは単純な「拒否」ボタンで、もう 1 つはダイアログの [戻る] ボタンをオーバーライドします。
builder.setNegativeButton("Refuse", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
finish();
return false;
}
});