1. 程式人生 > >避免dialog按下返回鍵消失

避免dialog按下返回鍵消失

應用中尤其是應用需要升級更新時彈出對話方塊讓使用者選擇升級或者取消,有時候版本有重大更新,但是有時使用者會覺得升級後手機速度會變慢,就會按返回鍵取消升級。這時如果必須強制使用者升級,取消返回鍵功能就用到如下程式碼:

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("提示:案件已將建立成功"); // 設定標題
builder.setMessage("是否回到主頁面?"); // 設定內容
builder.setIcon(R.drawable.ic_launcher);// 設定圖示,圖片id即可
builder.setPositiveButton("是", new DialogInterface.OnClickListener() { // 設定確定按鈕
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); // 關閉dialog
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { // 設定取消按鈕
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setCancelable(false);
builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
// TODO Auto-generated method stub
return false;
}


}
});

builder.create().show();

重點程式碼是

builder.setCancelable(false);

builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
// TODO Auto-generated method stub
return false;
}


}
});