我想知道哪个键被按下了。我有一个EditText,我为它添加了一个KeyListener。但它似乎没有工作。我有一个textview,我想在textview上按下setText。
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;
}
});
这应该是致命的简单,但我不能让它工作:)
答案 0 :(得分:1)
试试这个。这个适用于我的项目。
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是否正确。