Jur*_*anr 5 java android textwatcher android-edittext
我有3个EditText元素,如果输入中有4个字符,我想从一个字段跳到下一个字段.
我使用TextWatcher:
getEditView(R.id.edit_code1).addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void afterTextChanged(Editable input) {
if(input.length() == 4){
getEditView(R.id.edit_code2).requestFocus();
}
}
});
Run Code Online (Sandbox Code Playgroud)
EditText的inputType是"textCapCharacters"
当对一个键进行长按以获得一个数字时,比如按住R得到一个4,大多数设备都不会添加该字母,直到用户停止按住该按钮,并且在选择字母4之后将触发afterTextChanged.在HTC键盘上(在这种情况下是2.3.5上的HTC Desire),情况并非如此.即使用户仍然按住按钮,R也被添加到EditText并触发afterTextChanged,代码完成其工作并将焦点放在下一个字段上.
如何防止这种不良行为?观看onKeyDown/Up无济于事,因为它没有注册正常的击键.
不幸的是,这是 HTC 键盘中的一个错误,无法修复。这是 IME 中的一个事件,不可能拦截触摸或按键事件,因此您最好只是让用户跳到下一个输入,而不是为他们做这件事。
如果这对您来说很重要,您可以在那里实现您自己的键盘,仅使用您需要的按键。
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |