AlertDialog.Builder builder = new Builder(this);
builder.create().show();
這樣顯示出來的對話框,當用戶按返回鍵或搜索鍵時,這個對話框也能關閉。
怎樣才能實現一個類似在windows系統上的對話框,必須點對話框上的按鈕後,才能關閉這個對話框。
下面是具體代碼:
AlertDialog.Builder builder = new Builder(this);
builder.setMessage(msg);
builder.setTitle(title);
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.setCancelable(false);//設置這個對話框不能被用戶按[返回鍵]而取消掉,但測試發現如果用戶按了KeyEvent.KEYCODE_SEARCH,對話框還是會Dismiss掉
//由於設置alertDialog.setCancelable(false); 發現如果用戶按了KeyEvent.KEYCODE_SEARCH,對話框還是會Dismiss掉,這裡的setOnKeyListener作用就是屏蔽用戶按下KeyEvent.KEYCODE_SEARCH
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_SEARCH)
{
return true;
}
else
{
return false; //默認返回 false
}
}
});
alertDialog.show();