Cómo obtener EditText, IME Action, textMultiLine, para trabajar para JellyBean

Me he topado con el enigma y no encuentro una solución. Parece que JellyBean cambia cómo se manejan las acciones de IME. He encontrado muchos sitios web que ofrecen una solución que realmente funciona, pero sólo para EditTexts solo forrado. Ejemplo : Stackoverflow: onEditorAction

Mis elementos de EditText funcionaron perfectamente hasta JellyBean. Sería adecuadamente word-wrap hasta que el usuario pulsa la tecla "Done" (return). Entonces atraparía el evento con OnEditorActionListener y procesaría en consecuencia. He intentado varias variaciones de cambiar la configuración con los siguientes atributos XML sin éxito:

  • Solo línea
  • Desplazarse horizontalmente
  • tipo de entrada
  • Sugerencias
  • líneas

Sólo pude conseguir envoltura de palabras sin evento onEditorAction activado o sin encapsulación de palabra con el disparo de evento onEditorAction. ¿Cómo puedo obtener el empaquetado de palabras y manejar la tecla de teclado introduzca la clave al mismo tiempo para JellyBean?

Actualización 1: Incluye código solicitado. Tenga en cuenta que es así como se encuentra ahora que funciona para todas las plataformas, excepto JellyBean. Como dije antes, probé varias configuraciones XML diferentes sin éxito.

Actualización 2: Gestionado para conseguir un asimiento de un transformador de Asus que funciona JellyBean 4.1.1. Funciona bien. Así que tal vez este es un error específico del dispositivo? Mi otro dispositivo JellyBean es un Nexus 7 que ejecuta 4.1.2. ¿Puede alguien verificar esto con otros dispositivos?

Código:

 private class OnMyEditorActionListener implements OnEditorActionListener { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_GO) { doSomething(); return true; } return false; } } 
 <EditText android:id="@+id/editbox_box_et" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@null" android:gravity="top|center_horizontal" android:imeOptions="actionGo" android:inputType="textMultiLine|textNoSuggestions" android:padding="@dimen/spacing_half" android:textSize="24sp" > </EditText> 

Proporcione un ID por sí mismo a su botón de envío / envío

En actividad :

 private class OnMyEditorActionListener implements OnEditorActionListener { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == R.id.your_new_ID || actionId == EditorInfo.IME_Null) { doSomething(); return true; } return false; } } 

En xml :

 <EditText android:id="@+id/editbox_box_et" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@null" android:gravity="top|center_horizontal" android:inputType="textMultiLine|textNoSuggestions" android:padding="@dimen/spacing_half" android:textSize="24sp" android:imeActionId="@+id/your_new_ID" android:imeActionLabel="Go"> </EditText> 

Pruebe lo siguiente:

 android:inputType="text" android:imeOptions="actionNone" 

Y también compruebe hacia fuera con diversas opciones para el embalaje de la palabra en el archivo de xml del imeOptions

Después de un montón de pruebas, he determinado que es un error específico para el Nexus 7 y no hay nada de código sabio que puedo hacer para evitarlo. Curiosamente, si descarga un teclado diferente de Google Play, entonces el código realmente funciona.

Prueba a agregar atributo android:imeActionId con valor entero (2 para actionGo). http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeOptions

Tuve problemas para obtener el evento desencadenado por Jelly Bean 4.1.2. La adición de tipo de entrada me ayudó.

 android:imeOptions="actionGo" android:inputType="text" 
  • Aplicación personalizada de Android IME predeterminada en el teclado de pantalla
  • Android: Añadir imageButton encima de un teclado personalizado
  • Android: cambiar a otro IME de forma programática
  • Cómo cargar una distribución de teclado diferente para subtipo en android?
  • Cómo agregar scrollview a keyboardView en android
  • Cambiar el diseño del teclado dinámicamente
  • Android: la fila del teclado personalizado no está centrada
  • SetImeOptions: ¿por qué no se muestra el botón "Listo" en el teclado virtual?
  • Android: Cómo configurar el modo de vista de teclado preferido desde IME
  • Android: ¿Cómo hacer que el botón en la vista del candidato en el teclado virtual?
  • ¿Necesita teclado numérico solo de números?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.