Android OnKeyListener不工作
我希望四个edittext插入像ABC-0000-0000-0000这样的数据,因为当一个edittext填充时,我应用了textwatcher向前移动,当按下delete键时,它应该向后移动 我的代码是- EditText.OnKeyListener returnKeyListener=新建EditText.OnKeyListener(){Android OnKeyListener不工作,android,Android,我希望四个edittext插入像ABC-0000-0000-0000这样的数据,因为当一个edittext填充时,我应用了textwatcher向前移动,当按下delete键时,它应该向后移动 我的代码是- EditText.OnKeyListener returnKeyListener=新建EditText.OnKeyListener(){ 当keycode事件发生时,添加return true;。如果没有它,侦听器将无法启动 @Override public boolea
当keycode事件发生时,添加
return true;
。如果没有它,侦听器将无法启动
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
if (v.getId() == editToken_4.getId() && (TextUtils.isEmpty(editToken_4.getText())) || editToken_4.getSelectionStart()==0) {
editToken_3.setSelection(editToken_3.getText().length());
editToken_3.requestFocus();
}
if (v.getId() == editToken_3.getId() && (TextUtils.isEmpty(editToken_3.getText())) || editToken_3.getSelectionStart()==0 ) {
editToken_2.setSelection(editToken_2.getText().length());
editToken_2.requestFocus();
}
if (v.getId() == editToken_2.getId() && (TextUtils.isEmpty(editToken_2.getText())) || editToken_2.getSelectionStart()==0){
editToken_1.setSelection(editToken_1.getText().length());
editToken_1.requestFocus();
}
return true; //add this
}
return false;
}
};
当keycode事件发生时,添加
return true;
。如果没有它,侦听器将无法启动
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
if (v.getId() == editToken_4.getId() && (TextUtils.isEmpty(editToken_4.getText())) || editToken_4.getSelectionStart()==0) {
editToken_3.setSelection(editToken_3.getText().length());
editToken_3.requestFocus();
}
if (v.getId() == editToken_3.getId() && (TextUtils.isEmpty(editToken_3.getText())) || editToken_3.getSelectionStart()==0 ) {
editToken_2.setSelection(editToken_2.getText().length());
editToken_2.requestFocus();
}
if (v.getId() == editToken_2.getId() && (TextUtils.isEmpty(editToken_2.getText())) || editToken_2.getSelectionStart()==0){
editToken_1.setSelection(editToken_1.getText().length());
editToken_1.requestFocus();
}
return true; //add this
}
return false;
}
};
我这样做了,但cursur仍然没有在seond if条件和
if(keyCode==KeyEvent.keyCode_DEL)内移动backwordprint日志
要查看事件是否被调用,我应用了日志,事件没有调用code正在处理棉花糖和棒棒糖,它不处理jellybean和Kitkat。请看:我做了,但cursur仍然没有在seond if条件和if(keyCode==keycevent.keyCode\u DEL)内移动backwordprint日志
若要查看事件是否被调用,i applicated log,event is not calling code正在处理棉花糖和棒棒糖,它不处理jellybean和Kitkat请参见:
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
if (v.getId() == editToken_4.getId() && (TextUtils.isEmpty(editToken_4.getText())) || editToken_4.getSelectionStart()==0) {
editToken_3.setSelection(editToken_3.getText().length());
editToken_3.requestFocus();
}
if (v.getId() == editToken_3.getId() && (TextUtils.isEmpty(editToken_3.getText())) || editToken_3.getSelectionStart()==0 ) {
editToken_2.setSelection(editToken_2.getText().length());
editToken_2.requestFocus();
}
if (v.getId() == editToken_2.getId() && (TextUtils.isEmpty(editToken_2.getText())) || editToken_2.getSelectionStart()==0){
editToken_1.setSelection(editToken_1.getText().length());
editToken_1.requestFocus();
}
return true; //add this
}
return false;
}
};