我的TextView
android:maxLength
设置为3
,另一个android:maxLength
设置为7
。
我希望焦点在第一个TextView
的{{1}}字符填满后自动移至第二个3
。如何在不继承TextView
和编写自定义实现的情况下实现这一目标?
答案 0 :(得分:6)
我没有尝试,但这可能会奏效。
设置要在文本更改时触发的侦听器,以供此用途
addTextChangedListener(TextWatcher watcher)
然后根据文本长度,您可以请求将焦点更改为下一个字段。
如果您想查找下一个字段,可以调用View.focusSearch(View.FOCUS_FORWARD)
在指定方向找到可以获得焦点的最近视图。这实际上并不关注该观点。
答案 1 :(得分:5)
对于期待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) {
}
});