2010-01-12 41 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 
     } 

    });