在Android中创建密码视图
问题描述:
我想在android中创建读取4个字符密码的视图。当用户按下退格键时,我想要关注prev元素。当所选视图为空时,是否有可能捕获退格事件?在Android中创建密码视图
我也想在输入最后一个字符后关闭/隐藏键盘。可能吗?
答
我已经覆盖安其& 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("");
}
}
答
要捕获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);
发布你的一些代码,让我们看看它出错了! – Panther 2014-10-30 13:49:12
嗨豹我更新了代码的问题。即使调用clearFocus();软键盘没有关闭,关于退格键,你可以让我知道我们如何捕获它。 – 2014-10-30 13:58:00