【发布时间】:2011-10-30 08:09:34
【问题描述】:
我需要检测EditText 中软键盘或硬键盘上的每个按键。我只需要在按下字符时一次发送一个字符,不需要最终的文本字符串。
我曾尝试将EditText 与onKeyPress 一起使用,但我在这里遇到了无法使用软键盘按键的问题,而TextWatcher 不是一个好的选择,因为我需要每次按键。
是否有任何解决方案可以知道所有按键(包括返回、移位、回车...也)?
【问题讨论】:
我需要检测EditText 中软键盘或硬键盘上的每个按键。我只需要在按下字符时一次发送一个字符,不需要最终的文本字符串。
我曾尝试将EditText 与onKeyPress 一起使用,但我在这里遇到了无法使用软键盘按键的问题,而TextWatcher 不是一个好的选择,因为我需要每次按键。
是否有任何解决方案可以知道所有按键(包括返回、移位、回车...也)?
【问题讨论】:
如果您有EditText,则可以使用TextWatcher 接口。在我的代码中,search_edit 是 EditText。
search_edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//here is your code
myadapter.getFilter().filter(s);
listview.setAdapter(myadapter);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
【讨论】:
实现这个:
et_code_1.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
/* do something */
}
return true;
}
});
如果你想实现一个软键监听器,你可以实现TextWatcher。这是一个例子:How to use the TextWatcher class in Android?
【讨论】:
使用addTextChangedListener(TextWatcher watcher) 并实现TextWatcher 接口。
【讨论】: