天天看點

android按下enter鍵如何讓光标跳到下一個edittext,Android EditText 輸入回車符自動跳轉至下一個EditText...

一、此功能描述

在輸入資訊時,在EditText控件輸入Enter鍵,常常不是換行而是讓光标直接跳轉到下一個編輯框。該功能主要用到了文本監聽器接口TextWatcher,主要監聽使用者是否輸入回車符,如果監聽到已輸入回車符,就自動将焦點移動到下一個控件,進而實作回車符自動跳轉的需求。

二、功能代碼

public class JumpTextUtil implements TextWatcher {

private EditText mThisView = null;

private View mNextView = null;

public JumpTextUtil(EditText mThisView, View mNextView) {

super();

this.mThisView = mThisView;

if (mNextView!=null) {

this.mNextView = mNextView;

}

}

//beforeTextChanged:文本改變之前觸發

//onTextChanged:文本改變過程中觸發

//afterTextChanged:文本改變之後觸發

@Override

public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override

public void afterTextChanged(Editable editable) {

String str = editable.toString();

if (str.contains("\r")||str.contains("\n")){

mThisView.setText(str.replace("\r","").replace("\n",""));

if (mNextView!=null){

mNextView.requestFocus();

if (mNextView instanceof EditText){

// instanceof 是判斷其左邊對象是否為其右邊類的執行個體

EditText et = (EditText) mNextView;

et.setSelection(et.getText().length());

}

}

}

}

}

三、調用方法

//聲明EditText的變量username

EditText username;

//給變量username指派

username = findViewById(R.id.et_login_username);

//調用EditText的addTextChangedListener方法,文本監聽。

username.addTextChangedListener(new JumpTextUtil(username,password));