Android 自动聚焦下一个文本视图
我有一个Android 自动聚焦下一个文本视图,android,textview,Android,Textview,我有一个TextView,其中android:maxLength设置为3,另一个android:maxLength设置为7 当第一个TextView的3字符填满后,我希望焦点自动移动到第二个TextView。如何在不继承TextView和编写自定义实现的情况下实现这一点?我没有尝试过,但这可能会奏效 设置一个侦听器,在文本更改时触发,用于此用途 addTextChangedListener(TextWatcher watcher) 然后根据文本长度,您可以请求将焦点更改到下一个字段 如果要查找
TextView
,其中android:maxLength
设置为3
,另一个android:maxLength
设置为7
当第一个
TextView
的3
字符填满后,我希望焦点自动移动到第二个TextView
。如何在不继承TextView
和编写自定义实现的情况下实现这一点?我没有尝试过,但这可能会奏效
设置一个侦听器,在文本更改时触发,用于此用途
addTextChangedListener(TextWatcher watcher)
然后根据文本长度,您可以请求将焦点更改到下一个字段
如果要查找下一个字段,可以调用
View.focusSearch(View.FOCUS\u FORWARD)
查找指定方向上可以对焦的最近视图。这实际上并没有将重点放在该视图上。对于希望复制/粘贴的未来读者
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) {
}
});
我这样做了-public void onTextChanged(字符序列s,int start,int before,int count){if(s.length()==3){Log.d(标记,“下一个焦点位于:”+tv1.getNextFocusDownId());tv1.requestFocus(View.focus_DOWN);}但它不起作用-我做错了什么?当长度为3时,日志会正确打印消息,但焦点不会自动转移到下一个视图。请忽略我以前的评论-tv2.requestFocus()起作用。谢谢!view.focus\u FORWARD不是view.focusSearch的允许值。只有真实的方向。