Sna*_*ake 1 android android-alertdialog
我有一个对话框显示,我希望在按下后退按钮时要求用户确认他要在取消生效前取消对话框.这是我的代码:
dialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
AlertDialog.Builder builder = new AlertDialog.Builder(dialog.getContext());
builder.setMessage( "Are you sure you want to cancel?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface diag, int id) {
diag.dismiss();
dialog.dismiss();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface diag, int id) {
diag.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
dialog.show();
Run Code Online (Sandbox Code Playgroud)
问题是,当按下后退按钮时,我的当前对话框被取消,然后显示我的"确认消息".在用户确认对话框之前,如何确保不取消对话框?
onCancel
取消对话框时调用,这就是取消对话框后显示确认消息的原因.你应该setOnKeyListener
改为对话.
dialog.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
Toast.makeText(Activity.this, "back pressed", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4578 次 |
最近记录: |