2011-07-20 55 views
2

我顯示一個AlertDialog在我的應用程序,即使我已經將其設置爲不可撤銷,按下硬件搜索按鈕,當它被取消取消。AlertDialog過得去硬件搜索按鈕按下

我試圖重寫的keyDown方法和檢測該鍵按壓,也是onSearchRequested方法。但他們都沒有爲第一次,雖然他們以後的工作按鈕被按下的工作。

任何想法?

PS:我知道這是一個repeated question ....但沒有人回答它,這就是爲什麼重新發布:)

回答

4

您應該能夠與OnKeyListener做到這一點。在這種情況下,只允許DPAD密鑰。

return new AlertDialog.Builder(this) 
    .setTitle("Title") 
    .setMessage("Dialog message") 
    .setCancelable(false) 
    .setOnKeyListener(new DialogInterface.OnKeyListener() { 

     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
      //whitelist allowed keys - allow navigation keys only 
      if (keyCode < KeyEvent.KEYCODE_DPAD_UP || keyCode > KeyEvent.KEYCODE_DPAD_CENTER) { 
       return true; 
      } 
      return false; 
     } 
    }) 
.create(); 
+0

它的工作!萬分感謝! – mvrck