如何使AlertDialog在它之外的点击不可驳回?



每当我的警报对话框出现在屏幕上时,我可以点击它的外部,它就会消失,但我希望它不会在点击它的边界之外消失。这是我的警告对话框代码:

@Override
protected Dialog onCreateDialog(int id) {
    Log.wtf("x", "on create dialog....");
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    win_lose_view = (RelativeLayout) getLayoutInflater().inflate(R.layout.win_lose_screen, null);
    adb.setView(win_lose_view);
    upper_text = (TextView) win_lose_view.findViewById(R.id.upper_text);
    upper_text.setRotation(180);
    lower_text = (TextView) win_lose_view.findViewById(R.id.lower_text);
    upper_decide = (Button) win_lose_view.findViewById(R.id.upper_decide);
    upper_decide.setRotation(180);
    lower_decide = (Button) win_lose_view.findViewById(R.id.lower_decide);
    return adb.create();
}
@Override
protected void onPrepareDialog(int id, Dialog dialog){
    Log.wtf("x", "on prepare dialog...");
    super.onPrepareDialog(id, dialog);
    upper_decide = (Button) win_lose_view.findViewById(R.id.upper_decide);
    upper_decide.setRotation(180);
    lower_decide = (Button) win_lose_view.findViewById(R.id.lower_decide);
    View.OnClickListener goBack = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent goToChooseHero = new Intent(Battlefield.this, ChooseHero.class);
            goToChooseHero.putExtra("username1", username1);
            goToChooseHero.putExtra("username2", username2);
            startActivity(goToChooseHero);
            System.exit(1);
        }
    };
    upper_decide.setOnClickListener(goBack);
    lower_decide.setOnClickListener(goBack);
}

你试过创建对话框了吗

AlertDialog.Builder adb = new AlertDialog.Builder(this);
...
Dialog dialog = adb.create()
dialog.setCanceledOnTouchOutside(false);
return dialog;

最新更新