我想实现一个与android闹钟应用程序类似的EditText
。在此应用中,有两个EditText
字段用作HH
和mm
。键入这些字段会覆盖以前的数字。当您在HH
字段中输入第二个数字后,焦点会自动切换到mm
字段。
我试图在TextWatcher
方法中使用afterTextChanged()
手动设置此逻辑,但不幸的是,在此方法中修改文本会导致递归循环。
实施此方法的正确方法是什么?
请参阅下面的警报应用示例:
答案 0 :(得分:0)
将监听器添加到您的hh文本视图中
hh.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (hh.getText().toString().length() == 2){
mm.requestFocus();
}
return false;
}
});
希望这对你有用。
答案 1 :(得分:0)
事实证明,编辑onTextChanged
方法中的文本实际上不会导致递归循环,只要您使用布尔开关暂时禁用逻辑。精心编写所有逻辑到TextWatcher
以模仿警报式EditText
字段。