Android:EditText回车跳到下一个输入框或登录

创建一个工具类ViewUtil

在工具类中创建文本检查者

public static class JumpTextWatcher implements TextWatcher {
        private EditText mThisView = null;
        private View mNextView = null;

        public JumpTextWatcher(EditText vThis, View vNext) {
            super();
            mThisView = vThis;
            if (vNext != null) {
                mNextView = vNext;
            }
        }

        @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) {
            String str = s.toString();
            if (str.indexOf("/r") >= 0 || str.indexOf("\n") >= 0) {
                //如果发现输入回车符或换行符,替换为空字符
                mThisView.setText(str.replace("/r", "").replace("\n", ""));
                if (mNextView != null) {
                    //如果跳转控件不为空,让下一个控件获得焦点,此处可以直接实现登录功能
                    mNextView.requestFocus();
                    if (mNextView instanceof EditText) {
                        EditText et = (EditText) mNextView;
                        //如果跳转控件为EditText,让光标自动移到文本框文字末尾
                        et.setSelection(et.getText().length());
                    }
                }
            }
        }
    }

在Activity中为EditText添加监听器,这里让两个EditText之间互相跳转

editText = findViewById(R.id.edit_text);
editText2 = findViewById(R.id.edit_text2);
editText.addTextChangedListener(new ViewUtil.JumpTextWatcher(editText,editText2));
editText2.addTextChangedListener(new ViewUtil.JumpTextWatcher(editText2,editText));

猜你喜欢

转载自blog.csdn.net/lllx9464/article/details/79575264
今日推荐