创建一个工具类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));