【发布时间】:2011-12-29 17:59:35
【问题描述】:
我正在尝试使用 4 个 EditText 块来实现 iPhone 之类的 PIN 码授权:
我正在使用 TextWatcher 检查字段是否已更改,以便我可以在块之间跳转。 代码如下:
@Override
public void afterTextChanged(Editable s) {
if (del && index > 0) {
pin[index - 1].requestFocus();
}
else if ( ! del && ind < 3) {
pin[index + 1].requestFocus();
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
del = count != 0;
}
一切正常,除了当块为空并且按下 DEL/BACKSPACE 时,我想回到前一个块并清除它的值。 这是 TextWatcher 让我失败的地方,因为在空块中没有进行任何更改,它没有做任何事情。
我尝试过使用 keyEventListener,但它只能通过虚拟键盘捕获模拟器上的事件,而不是实际设备上的事件。
谁能建议我如何捕捉 DEL 事件或任何其他方式来实现它?
【问题讨论】:
标签: java android events keyboard