2012-06-15 19 views
12

Tengo un número de campos EditText en una aplicación de Android y he usado android: dígitos para detener la entrada de caracteres no válidos.Usando Android: Atributo de dígitos para restringir caracteres detiene la acción Botón siguiente trabajando

por ejemplo: android:digits="@string/validchars" (donde "validchars" es un recurso de cadena de todos los caracteres válidos - por ejemplo, AZ, 0-9, y algunos de puntuación)

El problema es que, si el usuario pulsa la tecla ENTER en el teclado suave solía llevarlos al siguiente campo, pero desde que agregué Android: dígitos, esto ha dejado de funcionar. He intentado agregar \ n al validchars, pero esto solo permite retornos de carro en los cuadros de texto de línea única (!), Por lo que no ayuda. He intentado juguetear con las imeOptions (agregando actionNext, etc.) pero esto tampoco parece arreglarlo. He leído sobre TextWatchers y InputFilters, pero ambos parecen ser demasiado complicados para lo que estoy tratando de hacer y el bit android:digits funciona bien para detener los caracteres no válidos.

¿Alguien tiene alguna idea?

Estoy usando Android SDK versión 8 y apuntando a dispositivos 2.2 y 2.3.5.

Respuesta

22

Después de hurgar un poco con los atributos disponibles para un EditText encontré que cuando agrego android: singleLine = "true" la tecla ENTER ahora mueve el foco al siguiente campo, incluso cuando un android: digits es restrictivo los personajes ingresados. ¡Problema resuelto! (¡para mí, de todos modos!)

+0

Alternativamente, si el usuario desea tener una opción de "hecho" en lugar de la siguiente, consulte esta pregunta, que está relacionada con http://stackoverflow.com/questions/1919742/android-editview- done-button – CrimsonX

+0

android: singleLine deprecated = (¿es de otra manera? –

+0

Creo que ahora debería usar maxLines = "1" – Buzby

Cuestiones relacionadas