如何自动移动到android中的下一个编辑文本

use*_*307 34 android

我在一行上有几个编辑文本框.在用户输入特定数量的字符后,我想自动移动到下一个编辑文本.我该如何实现这一目标?

She*_*ara 64

您可以通过使用Text Watcher该类来实现此目的,然后将焦点设置在TextWatcher EditTextOnTextChanged()方法中的下一个.

在你的情况下,因为你有两个编辑文本,说et1et2.您可以尝试以下代码: -

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)

我自己没有检查过代码,但我希望这可以帮助您解决问题.

  • 如果我有6个以上的edittext,并且要将相同的代码应用于每个ediitext,该怎么办?我不想为所有6个ediitext重复我的代码! (2认同)

小智 16

有一种更简单的方法,它不涉及EditText视图的ID的知识.用于android:maxLength ="1".

// onTextChanged
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
    TextView text = (TextView)getCurrentFocus();

    if (text != null && text.length() > 0)
    {
        View next = text.focusSearch(View.FOCUS_RIGHT); // or FOCUS_FORWARD
        if (next != null)
            next.requestFocus();

        doSearch(); // Or whatever
    }
}

// afterTextChanged
@Override
public void afterTextChanged(Editable s) {}

// beforeTextChanged
@Override
public void beforeTextChanged(CharSequence s, int start,
                              int count, int after) {}
Run Code Online (Sandbox Code Playgroud)