我想在android中创建一个读取4个字符密码的视图。我想在用户按退格键时关注prev元素。当所选视图为空时,是否可以捕获退格事件?
我还想在输入最后一个字符后关闭/隐藏键盘。有可能吗?
答案 0 :(得分:0)
要捕获backspace
,它实际上是android中的删除键。你可以通过
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL){
//delete key pressed
}
return false;
}
});
隐藏键盘试试这个
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
答案 1 :(得分:0)
我覆盖了onKey& onFocusChange函数并使用ZeroWidthString(“\ u200B”)从软键盘捕获删除事件。以下是代码嗅探
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_UP ) {
TextView tv = (TextView) v;
if (keyCode == KeyEvent.KEYCODE_DEL){
if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString))
moveToPrevField();
else
tv.setText(ZeroWidthString);
}
}
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
TextView tv = (TextView) v;
if (hasFocus) {
tv.setText(ZeroWidthString);
}
else if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString)) {
tv.setText("");
}
}