移动到android中的下一个EditText

use*_*307 27 android

根据问题和答案发布如何自动移动到android中的下一个编辑文本,我使用代码移动到下一个编辑框.

et1.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence s, int start,int before, int count) 
    {
        // TODO Auto-generated method stub
        if(et1.getText().toString().length()==size)     //size as per your requirement
        {
            et2.requestFocus();
        }
    }
    public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {
                // TODO Auto-generated method stub

    }

    public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
    }

});
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,如果我输入错误,那么即使用户明确请求焦点,由于文本观察器中的代码,文本框也会移动到下一个.我有什么办法可以防止这种情况发生吗?

ars*_*shu 33

可能会很晚但我有一个更容易应用的解决方案.只需将此代码添加到layout.xml文件中的edittext字段即可.将此添加到要显示下一个按钮而不是完成按钮的 edittext .所以它将指向下一个Edittext字段.

android:imeOptions="actionNext"
Run Code Online (Sandbox Code Playgroud)


小智 15

如果你想在下一个EditText上关注输入按下,你可以使用XML代码中的这些选项来关注下一个EditText:

选项1:

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionNext"
    android:singleLine="true"/>
Run Code Online (Sandbox Code Playgroud)

选项2:

<EditText
    android:id="@+id/et1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:nextFocusForward="@+id/et2"/>

<EditText
    android:id="@+id/et2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="true"/>
Run Code Online (Sandbox Code Playgroud)


Hir*_*ral 10

您可以检查为1st EditText按下的键,如果是"Enter"键,则将焦点移动到下一个EditText.

这可能对您有所帮助:KeyCode_Enter到下一个edittext


UVM*_*UVM 5

您需要验证用户输入以满足您的期望.如果满足,那么只能打电话et2.requestFocus()