Focus next textview
问题描述:
我有一个TextView
与android:maxLength
设置为3
和另一个android:maxLength
设置为7
。Focus next textview
我想要重点自动移动到第二个TextView
一旦3
字符的第一个TextView
填满了。如何在不继承TextView
并编写自定义实现的情况下实现这一目标?
答
我还没有尝试,但这可能工作。
设置一个监听火的时候,文本被改变,这种用途
addTextChangedListener(TextWatcher watcher)
然后基于文本的长度,你可以请求焦点切换到下一个字段。
如果您想查找下一个字段,您可以拨打View.focusSearch(View.FOCUS_FORWARD)
在指定的方向上查找可以聚焦的最近视图。这实际上并没有把重点放在这个观点上。
答
对于未来的读者期待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) {
}
});
我这样做 - 公共无效onTextChanged(CharSequence中,诠释开始,诠释之前,诠释计数){ 如果(s.length()== 3 ){ Log.d(TAG,“下一个焦点在:”+ tv1.getNextFocusDownId()); tv1.requestFocus(View.FOCUS_DOWN); } 但它没有工作 - 我做错了什么? 当日志长度为3时,日志会正确打印该消息,但焦点不会自动切换到下一个视图。 – Naseer 2010-06-01 08:04:13
请忽略我以前的评论 - tv2.requestFocus()工作。 谢谢! – Naseer 2010-06-01 08:14:58
View.FOCUS_FORWARD不是View.focusSearch的允许值。只有真正的方向。 – dabluck 2017-02-07 20:27:11