2010-01-12 44 views
2

我趕上鍵盤事件使用安其方法/壓機:的Android安其W /虛擬鍵盤

public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
    //do something 
    return false; 
} 

這將激活過就好了物理鍵盤按壓,但不會觸發虛擬鍵盤壓力機。有處理虛擬鍵盤按下的事件處理程序嗎?

回答

8

如果它是一個EditText,請參閱是否可以改爲使用TextChangedListener。

myEditText.addTextChangedListener(new TextWatcher(){ 
     public void afterTextChanged(Editable s) {} 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      //do stuff 
     } 

    }); 
+0

那個伎倆!我會發佈下面的代碼,因爲它在這裏格式不好,謝謝! – jlim

1

虛擬按鍵直接傳送到選定的視圖,它們不會像硬件按鍵那樣通過父視圖傳播。你是否重寫onKey而不是EditText/List /無論獲得哪些按鍵? (你點擊獲得虛擬鍵盤的東西)

+0

我重寫我的活動實現onClickListener安其: 公共類Foo實現OnClickListener { .. 公共無效安其(查看arg0中,INT ARG1,ARG2的KeyEvent){ 如果(arg0中==搜索框){// 做些什麼 } } .. } 其中searchBox是一個EditText – jlim

1
myEditText.addTextChangedListener(new TextWatcher(){ 
     public void afterTextChanged(Editable s) {} 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      //do stuff 
     } 

    });