Android 我已将setCancelable设置为false,但对话框可以';不能作为模态窗口工作
我已将设置为可取消(false)。在我看来,代码将首先显示一个对话框窗口,单击OK按钮后对话框窗口将关闭 但事实上,代码直接关闭整个应用程序,而不显示对话框窗口Android 我已将setCancelable设置为false,但对话框可以';不能作为模态窗口工作,android,Android,我已将设置为可取消(false)。在我看来,代码将首先显示一个对话框窗口,单击OK按钮后对话框窗口将关闭 但事实上,代码直接关闭整个应用程序,而不显示对话框窗口 如何在关闭整个应用程序之前显示对话框 findViewById(R.id.btnClose).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Build
如何在关闭整个应用程序之前显示对话框
findViewById(R.id.btnClose).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new Builder(SMSMain.this);
builder.setMessage(getString(R.string.DeleteInContextPrompt));
builder.setTitle(getString(R.string.Warning));
builder.setCancelable(false);
builder.setPositiveButton(getString(R.string.OK), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//I won't add finish() here
}
});
builder.create().show();
finish();
}
});
是,因为
finish()代码>您可以销毁活动。
使用dialog.dismis()
关闭对话框是,因为finish()代码>您可以销毁活动。
使用dialog.dismis()
关闭对话框/p>/finish();这是您在OnClick内的代码中编写的问题,它会使您的整个应用程序甚至在对话框之前关闭,如果您想在用户在对话框中单击OK后关闭应用程序,请在您的Posivive按钮的click事件内调用finish()
另外,请确保覆盖onBackPressed,以防用户按下后退按钮关闭活动时弹出对话框。/p>/finish();这是您在OnClick内的代码中编写的问题,它会使您的整个应用程序甚至在对话框之前关闭,如果您想在用户在对话框中单击OK后关闭应用程序,请在您的Posivive按钮的click事件内调用finish()
另外,请确保覆盖onBackPressed,以防用户按下back按钮关闭活动时弹出对话框。试试这个
findViewById(R.id.btnClose).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog dialog;
AlertDialog.Builder builder = new Builder(SMSMain.this);
builder.setMessage(getString(R.string.DeleteInContextPrompt));
builder.setTitle(getString(R.string.Warning));
builder.setCancelable(false);
builder.setPositiveButton(getString(R.string.OK), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();// call finish() to close this activity for OK click
}
});
dialog=builder.create();
dialog.show();
// finish();
}
});
试试这个
findViewById(R.id.btnClose).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog dialog;
AlertDialog.Builder builder = new Builder(SMSMain.this);
builder.setMessage(getString(R.string.DeleteInContextPrompt));
builder.setTitle(getString(R.string.Warning));
builder.setCancelable(false);
builder.setPositiveButton(getString(R.string.OK), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();// call finish() to close this activity for OK click
}
});
dialog=builder.create();
dialog.show();
// finish();
}
});
如何在关闭整个应用程序之前显示对话框。 试一试
如何在关闭整个应用程序之前显示对话框。 试一试