如何在用户验证 EditText 时更改焦点

How to change the focus when user validate the EditText

在我的例子中,用户必须给出小时和分钟,但我找不到如何将焦点放在分钟上,因为我输入了一个字符的小时。时间可以是一两个字符,所以即使我只给出一个字符并使用键盘进行验证,我也想这样做。 这是我的代码:

ed_nbHeure.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) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if(ed_nbHeure.length()>1){
                    ed_nbMin.requestFocus();
                }


            }
        });

我想知道如何用键盘调用验证动作改变焦点

谢谢

试试这个:

ed_nbHeure.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) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if(s.length()==1){
                    ed_nbMin.requestFocus();
                }


            }
        });

afterTextChanged中添加此条件

if(s.length()==1)
{
     ed_nbMin.requestFocus();
}

在我的例子中,我只需要像这样使用 .setOnEditorActionListener() :

ed_nbHeure.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId== EditorInfo.IME_ACTION_DONE){
                    ed_nbMin.requestFocus();

                }
                return false;
            }

        });

感谢您的帮助