Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como alterar a ordem de entrada de EditText?

Como alterar a ordem de entrada de EditText? No exemplo abaixo, ao teclar Next a ordem será campo1, campo3, campo5, campo2, campo4

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <EditText
        android:id="@+id/campo1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:hint="Campo 1"
        android:importantForAutofill="no"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/campo2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:hint="Campo 2"
        android:importantForAutofill="no"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/campo3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:hint="Campo 3"
        android:importantForAutofill="no"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/campo4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:hint="Campo 4"
        android:importantForAutofill="no"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/campo5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:hint="Campo 5"
        android:importantForAutofill="no"
        tools:targetApi="o" />

</LinearLayout>

2 respostas

Fala Marcelo, de boa ?

Cara pensando no usuário, isso faria sentido ? Tipo ele não vai achar estranho ter saido de um e ir para outro campo direto pulando algum ? Acredito que ele vai achar que tá com bug ou que clicou 2 x no enter.

O que você quer fazer, com o LinearLayout não rola, ele vai linear, então vai seguir indo para baixo mesmo. Talvez o que tu possa vir a fazer é usar o atributo imeOptions e implementar essa lógica no seu código para sair do campo x e ir para o campo y, através do metodo focus.

solução!

Achei um post com a solução que eu precisava.

O atributo nextFocusDown resolve o problema, exemplo:

<EditText ... android:nextFocusDown="@+id/proximo_edit_text" />

<EditText android:id="@id/proximo_edit_text" .... /> Quando o usuário clicar no "Next" do teclado físico, ele vai mudar o foco para o EditText cujo id seja o valor do nextFocusDown.