2012-06-23 14 views
0

我有一個簡單的ProgressDialog,但我意識到如果我按下搜索按鈕,對話框將被解僱。在這個過程中,我可以做些什麼來禁用搜索按鈕?禁止在ProgressDialog期間按搜索按鈕

dialog = new ProgressDialog(Main.this); 
dialog.setTitle("Working in progress"); 
dialog.setMessage("Please wait..."); 
dialog.setCancelable(false); 
dialog.show(); 

我把這個,它沒有工作。

dialog = new ProgressDialog(Main.this){ 
    @Override 
    public boolean onSearchRequested() { 
      return false; 
    } 
    }; 

這也行不通。

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0) { 
       return true; // Pretend we processed it 
      } 
      return false; // Any other keys are still processed as normal 
     } 
    });  

回答

1

嘗試把

@Override 
public boolean onSearchRequested() { 
     return false; 
} 

活動中,而不是對話。

編輯:也嘗試添加鍵偵聽器代碼的活動:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // your code 
} 
+0

嗨,我也嘗試過。不工作。 –

+0

按鍵搜索時按鍵偵聽器是否檢測到任何內容?您是否嘗試過調試以查看它是否進入了監聽器或記錄了鍵碼? – Ixx

+0

而且你也嘗試在同一時間重寫onSearchRequested對話框和活動? – Ixx