我有一个TextView
with android:maxLength
set to3
和另一个 with android:maxLength
set to 7
。
TextView
一旦第一个3
字符TextView
被填满,我希望焦点自动移动到第二个。如何在不继承TextView
和编写自定义实现的情况下实现这一点?
我没有尝试过,但这可能有效。
设置一个侦听器以在文本更改时触发,用于此用途
addTextChangedListener(TextWatcher watcher)
然后根据文本长度,您可以请求将焦点更改到下一个字段。
如果您想找出下一个字段,您可以调用View.focusSearch(View.FOCUS_FORWARD)
Find the nearest view in the specified direction that can take focus。这实际上并没有关注该观点。
对于希望阅读的未来读者COPY/PASTE
int MAX_LENGTH = 3;
txt1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() == MAX_LENGTH) {
txt2.requestFocus(View.FOCUS_DOWN);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});