4

我在我的Activity中使用了AutoCompleteTextView,我需要它的DropDownList被一直顯示(它是窗口中唯一的View),即使在Back鍵按下後也是如此。我需要取消軟鍵盤。如何在按下後退鍵後保持AutoCompleteTextView的DropDownList打開?

我試着重寫Activity的onBackPressed方法,但它根本沒有使用,所以BackPressed事件正在處理「更高」的地方。所以我試圖找出在哪裏,但AutoCompleteTextView沒有定義onBackPressed方法。

任何建議?

回答

0

你可以試試這個

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
      //Your back key press logic 
    } 
    return true; 
} 

記得返回true,以防止該事件被進一步傳播,或false,表示你已經不處理該事件,並應繼續傳播。

+1

我試過,但onkeydown事件方法不會被調用。與onBackPressed方法相同。看起來像AutoCompleteTextView或它的任何部分是自己處理按鍵事件。但我找不到哪一個。 – filipko 2012-03-15 15:37:29

2

您可以創建自定義AutoCompleteTextView和覆蓋的方法onKeyPreIme(INT的keyCode,KeyEvent的事件)

我也意識到,這種方法被稱爲2次,我只是在第二次運行我的代碼。這裏是例子:

@Override 
public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1) { 
     //add your code here 
     return true; 
    } 
    return super.onKeyPreIme(keyCode, event); 
} 
相關問題