如何查找在android中按下了哪个键? [英] how to find which key is pressed in android?
本文介绍了如何查找在android中按下了哪个键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想找出按下了哪个键.我有一个EditText,并为此添加了一个KeyListener.但是它似乎没有用.我有一个textview,我想设置要在textview上按下的setText.
I would like to find out which key is pressed. I have a EditText and I added a KeyListener for it. but it doesnt seem to be working.I have a textview and I want to setText which is is pressed on the textview.
edittext = (EditText)findViewById(bla);
textview = (TextView)findViewById(bla);
edittext.setKeyListener(new Keylistener(){
@Override
public void clearMetaKeyState(View view,
Editable content, int states) {
// TODO Auto-generated method stub
}
@Override
public int getInputType() {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean onKeyDown(View view, Editable text,
int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_DEL){
textview.setText("delete");
}
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onKeyOther(View view, Editable text,
KeyEvent event) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onKeyUp(View view, Editable text,
int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_DEL){
textview.setText("delete");
}
return false;
}
});
这应该是非常简单的,但我无法使它起作用:)
This should be deadly simple but I cannot get it worked :)
推荐答案
尝试一下.这个适用于我的项目.
Try this. This one works on my project.
editext.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if( (event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_DEL) ){
Log.d(TAG, "Delete key clicked !");
return true;
}
return false;
}
});
如果这不起作用,则可能是您听错了EditText.检查您的findViewById以查看您的ID是否正确.
If this doesn't work, you are probably listening a wrong EditText. Check your findViewById to see if your id is correct.
这篇关于如何查找在android中按下了哪个键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文