2012-11-07 37 views
3

我有一個HTC Desire手機,並且想要在用戶點擊難以搜索時顯示設置焦點到輸入字段並顯示鍵盤button。鍵盤顯示在屏幕上後立即消失。在HTC Desire上使用onKeyDown和KEYCODE_SEARCH鍵顯示鍵盤在顯示後立即消失

我已經覆蓋onKeyDown與此代碼:

public boolean onKeyDown(int key, KeyEvent event) { 

    if (key == KeyEvent.KEYCODE_SEARCH) { 
     EditText input = (EditText) findViewById(R.id.list_search_input); 
     input.setText(null); 

     input.requestFocus(); 


     // show keyboard 
     InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.showSoftInput(input, 0); 
    } 

    return super.onKeyDown(key, event); 
} 

等待一些想法,謝謝!

回答

1

嘗試更換此

return super.onKeyDown(key, event); 

與此:

return true; 

我認爲,這是因爲你讓默認(super.onKeyDown(key, event);)事件處理程序被執行。

+0

謝謝,成功了! ;) –

+0

@KristapsGrinbergs然後將此答案設置爲「接受的答案」! ;) – Taai

0

只是想知道如何編譯這個!你有一個公共boolen,但你沒有返回值...嘗試「返回super.onKeyDown(鍵,事件);」在函數的結尾!

+0

這只是代碼的一部分。 –

+0

你用什麼android版本?它可能是你的代碼的「休息」對鍵盤做了什麼壞事?可能會嘗試使用SHOW_FORCED或SHOW_IMPLICIT作爲showSoftInput(View,int)的第二個參數 – aichingm

+0

我有2.3.3。它發生在空白項目和一個EditField中。某些東西關閉了那個鍵盤,但是什麼? :/ –