当关注具有maxlength的EditText时,移动到下一个EditText

时间:2018-02-23 01:22:52

标签: android

我试图让下一个EditText通过在第一个编辑文本上添加EditText并调用TextWatcher来获得第一个editText2.requestFocus()最大长度的焦点TextChanged

现在,当我试图关注已经达到最大长度的editText1时,问题就出现了。当我尝试键入任何字符时,它将无法关注editText2,因为TextWatcher将不再触发。

是否有人尝试过修复此问题?请注意,我希望尽可能地在我的布局XML上保留maxlength细节,这样代码就不会搞砸了。

1 个答案:

答案 0 :(得分:1)

在这里尝试一下, 我假设最大长度是5,你可以设置你想要的任何数字。

EditText editText1 = findViewById(R.id.et1);
final EditText editText2 = findViewById(R.id.et2);

        editText1.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.toString().length() == 5){
                    editText2.requestFocus();
                }

            }
        });