Как изменить фокус, когда пользователь проверяет EditText - PullRequest
1 голос
/ 04 мая 2020

в моем случае пользователь должен указать часы и минуты, но я не могу найти, как выделить фокус, если я ввожу часы с одним символом. Часы могут составлять один или два символа, поэтому я хочу сделать это, даже если я дам только один символ и проверим его с помощью клавиатуры. Вот мой код:

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();
                }


            }
        });

Я хочу знать, как вызвать действие проверки с помощью клавиатуры, чтобы изменить фокус.

Спасибо

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Попробуйте это:

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();
}
0 голосов
/ 05 мая 2020

В моем случае мне просто нужно было использовать .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;
            }

        });

Спасибо за вашу помощь

...