textcapwords - nextfocusforward android
Establecer EditText imeOptions en actionNext no tiene ningĂșn efecto (9)
Tengo un archivo de diseño xml bastante complejo (no realmente). Una de las vistas es LinearLayout ( v1
) con dos hijos: un EditText ( v2
) y otro LinearLayout ( v3
). El niño LinearLayout a su vez tiene un EditText ( v4
) y un ImageView ( v5
).
Para EditText v2 tengo imeOptions como
android:imeOptions="actionNext"
Pero cuando ejecuto la aplicación, la return
del teclado no pasa a la next
y quiero que cambie a la next
. ¿Cómo soluciono este problema?
Además, cuando el usuario haga clic en siguiente, quiero que el foco vaya a EditText v4. Yo hago esto?
Para aquellos que realmente necesitan ver algún código:
<LinearLayout
android:id="@+id/do_txt_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/col6"
android:orientation="vertical"
android:visibility="gone" >
<EditText
android:id="@+id/gm_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/coldo_text"
android:hint="@string/enter_title"
android:maxLines="1"
android:imeOptions="actionNext"
android:padding="5dp"
android:textColor="pigc7"
android:textSize="ads2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal" >
<EditText
android:id="@+id/rev_text"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/coldo_text"
android:hint="@string/enter_msg"
android:maxLines="2"
android:padding="5dp"
android:textColor="pigc7"
android:textSize="ads2" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@drawable/colbtn_r”
android:clickable="true"
android:onClick=“clickAct”
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:src="@drawable/abcat” />
</LinearLayout>
</LinearLayout>
Finalmente, tengo una solución segura para este problema. Simplemente agregue estas 3 líneas en su texto de edición y estará funcionando bien
android:maxLines="1"
android:inputType="text"
android:imeOptions="actionDone"
Aquí puede agregar maxLines de acuerdo a sus requerimientos. No use SingleLine ya que está en desuso ahora. ¡Buena suerte!
La clave aquí es establecer el tipo de entrada y los atributos imeOptions
<EditText
android:inputType="number"
android:maxLines="1"
android:imeOptions="actionSearch" />
Las respuestas dadas aquí fueron todas muy útiles, pero todavía estaba luchando por mostrar el "Siguiente" de mi teclado.
Resulta que cuando usas Android android:digits
attribute en tu XML, evita que android:imeOptions="actionNext"
funcione como se espera.
La respuesta es usar el android:singleLine="True"
obsoleto android:singleLine="True"
. Esto parece forzar a la opción IME a ser respetada.
Código antiguo que no funciona
<android.support.design.widget.TextInputEditText
android:id="@+id/first_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
android:ellipsize="end"
android:hint="@string/first_name"
android:imeOptions="actionNext"
android:inputType="textCapWords"
android:maxLength="35"
android:maxLines="1" />
Código de trabajo
<android.support.design.widget.TextInputEditText
android:id="@+id/first_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
android:ellipsize="end"
android:hint="@string/first_name"
android:imeOptions="actionNext"
android:inputType="textCapWords"
android:maxLength="35"
android:maxLines="1"
android:singleLine="true" />
No soy partidario de usar un atributo obsoleto, pero por ahora parece obtener el resultado deseado.
Simplemente agregue android:maxLines="1" & android:inputType="text"
a su EditText. ¡¡Funcionará!! :)
una sola línea obsoleta, por lo que debe agregar el código siguiente, creo que inputType debe.
<EditText
android:inputType="text"
android:maxLines="1"
android:imeOptions="actionNext" />
android:singleLine
ha quedado obsoleto, es mejor combinar android:maxLines="1"
con android:inputType="text"
. Este sería el código:
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text"
/>
singleLine
está en desuso. Agregar un tipo de entrada (por ejemplo: android:inputType="text"
) también funcionó para mí.
Use android:maxLines="1"
ya que singleLine
está en desuso
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/auth_register_re_password"
android:hint="Enter Password Again"
android:imeActionLabel="login"
android:gravity="center"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
/>
android:inputType="text"
Debes especificar un inputType para que funcione imeOptions.