Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自动聚焦下一个文本视图_Android_Textview - Fatal编程技术网

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的允许值。只有真实的方向。