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