¿Cómo puedo actualizar la visualización del botón de acción del editor de inmediato?

Mi pregunta es: ¿Cómo puedo actualizar la visualización del botón de acción del teclado virtual sobre la marcha?

Otro post parece ser acerca de cambiar la acción del editor antes de que se muestre el teclado: Android: No se puede saber cómo usar setImeActionLabel . Me gustaría cambiar el botón de acción de teclado suave MIENTRAS se muestra.

He tenido éxito parcial: – Puedo cambiar la acción usando: editText.setImeOptions (EditorInfo.IME_ACTION_GO); – También puedo volver a dibujar el teclado utilizando: InputMethodManager.restartInput (editText); Hago esto usando TextWatcher.afterTextChanged. – Sin embargo, tengo un problema con esto. Si presiono una tecla, además de que el teclado muestra qué tecla ha sido presionada. Pero cuando llamo restartInput (…), esto también oculta la vista que muestra qué tecla ha sido presionada. Esto parece un comportamiento normal para mí, pero necesito una manera alrededor de él.

Extender EditText y sobreescribir onKeyUp no es una buena idea, consulte: https://groups.google.com/forum/?fromgroups#!topic/android-developers/RIxGfx5qOjM .

La clase KeyboardView tiene exactamente lo que necesito (invalidateKey), pero creo que sólo es accesible cuando se crea su propio método de entrada.

¿Alguien más tiene algunas ideas mejores?

Intenta ser más específico cuando describes lo que quieres hacer … Necesitaba leer tu mensaje muchas veces para poder entender tu solicitud.

Así que lo que quieres hacer es cómo reaccionar a cualquier tecla presionada en el teclado y mostrar información sobre ella en la tecla de acción en el teclado. Si eso no es tu objetivo plz para explicar más …

En caso afirmativo, supongo que tendrás que usar el editor adicional (no visible) permite llamar a et0. Después de terminar de insertar una letra o cualquier patrón que defina a través de ontextchanged en su texto de edición, cambie el enfoque a et0 .. para que pueda cambiar la acciónKey .. y luego enviar el foco de nuevo a su editText .. para que pueda hilo o timertask, O cualquier forma de gestionar este cambio temporal de enfoque en y desde et0 .. aquí no es necesario reiniciar la entrada.

Espero que te ayude ..

¿Has intentado cambiar /system/usr/keychars/default.kcm sobre la marcha antes de invocar tu código de redibujo? (El nombre de archivo puede ser diferente dependiendo de la versión de Android).

Allí, se le permite establecer no sólo los caracteres de salida de la clave, sino también los valores de visualización de la clave. No lo he probado, también podría incurrir en un retraso, pero vale la pena intentarlo.

Esto debe ser muy útil para usted.

EditText in = new EditText(this); in.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence cs, int s, int b, int c) { Log.i("Key:", cs.toString()); } public void afterTextChanged(Editable editable) {} public void beforeTextChanged(CharSequence cs, int i, int j, int k) {} }); 
  • Dimensiones del teclado virtual QML
  • Android: problemas de edittext y de teclado multilínea
  • AutoCompleteTextView: quita el teclado suave en la parte posterior de la prensa en lugar de sugerencias
  • Cómo bloquear / desbloquear el teléfono mediante programación: Android
  • Encuentra el idioma del teclado Android actual
  • ¿Hay una forma de realizar un seguimiento de esta excepción: la búsqueda de enfoque devolvió una vista que no pudo tomar el foco
  • Android: Añadir imageButton encima de un teclado personalizado
  • El teclado en pantalla se abre automáticamente cuando se inicia la actividad
  • Android: ¿Cómo emular una tapa del teclado?
  • Evento de teclado de hardware de captura de Android sin vista de edittext
  • ¿Es posible programar Android para actuar como teclado físico USB?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.