如何使AlertDialog在其外部不受限制?[android]

时间:2015-10-19 07:31:41

标签: android dialog alertdialog android-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);
}

1 个答案:

答案 0 :(得分:1)

您是否尝试过创建对话框

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