How to know key presses in EditText
I need to detect every key press on either a soft or hard keyboard in EditText
. I just need to send the characters one at a time as they are pressed and don't need the final text string.
I have tried using an EditText
with onKeyPress
, but I ran into the problems here with not getting key presses with soft keyboards and Te开发者_运维知识库xtWatcher
isn't a good option because I need each key press.
Is there any solution to know all the keypresses (including back, shift, enter... also)?
If you have an EditText
, then you can use the TextWatcher
interface. In my code, search_edit
is an 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
}
});
Implement this:
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;
}
});
Update:
As you would like to implement a Soft key listener, you can implement TextWatcher. Here is an example: How to use the TextWatcher class in Android?
Use addTextChangedListener(TextWatcher watcher)
and implement TextWatcher interfaace.
精彩评论