Android IME: muestra un cuadro de diálogo emergente personalizado (como el teclado Swype) que puede introducir texto en el TextView

Me pregunto cómo puedo crear un pop-up personalizado como el que aparece en la captura de pantalla de abajo (tomado del teclado de Swype), donde puedo tener un par de botones, cada uno de los cuales TextView una cadena al TextView (actualmente conectado) Vía un InputConnection ).

Tenga en cuenta: este es un InputMethodService y no una Activity normal. Ya intenté iniciar una Activity separada con el Theme:Dialog . Sin embargo, tan pronto como uno abre, pierdo mi enfoque con el TextView y mi teclado desaparece (y con eso mi InputConnection se ha ido).

Swype

4 Solutions collect form web for “Android IME: muestra un cuadro de diálogo emergente personalizado (como el teclado Swype) que puede introducir texto en el TextView”

Puede intentar usar una PopupWindow . Tendrás que hacer un poco de piratería para conseguir que haga lo que quieres y la única buena documentación para él es la fuente.

Yo estaba golpeando mi cabeza contra este problema también y finalmente lo averigué. Las soluciones anteriores son correctas, aunque como usted señaló que no se puede utilizar desde un InputMethodService porque no es una actividad. El truco es crear el PopupWindow en una subclase de KeyboardView . Usando una posición Y negativa, el PopupWindow puede aparecer sobre el teclado como Swype.

Buena suerte, Barry

Respuesta correcta:

  1. Cree una ventana PopupWindow y coloque su vista dentro de ella
  2. Llamar popupWindow.setClippingEnabled (false)
  3. Llame a [popupWindow.showAtLocation ()] ( http://developer.android.com/reference/android/widget/PopupWindow.html#showAtLocation(android.view.View , int, int, int)) con una coordenada Y negativa.

Esto mostrará su ventana emergente sobre el IME como en su captura de pantalla.

La paz sea con los que siguen la guía,

Solución:

 AlertDialog dialog; //add this to your code dialog = builder.create(); Window window = dialog.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.token = mInputView.getWindowToken(); lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG; window.setAttributes(lp); window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); //end addons dialog.show(); 

===== UPDATE 30.09.2015 mInputVer el nombre general de la clase de teclado … ver

 @Override public View onCreateInputView() { mInputView =(MyKeyboardView) getLayoutInflater().inflate( R.layout.input, null); .... } 

Más información: http://developer.android.com/guide/topics/text/creating-input-method.html

buena suerte.

  • Desvío del teclado Android
  • Desarrollo de Android: atajo de gancho en el teclado cuando se centra la actividad de la aplicación de teléfono
  • Simulando exactamente la pulsación de teclas de un usuario en Javascript
  • Android ScrollView no se desplaza cuando el teclado está hacia arriba
  • Android: problemas de edittext y de teclado multilínea
  • Teclado personalizado sombra clave de teclado eliminar
  • La mejor manera de ocultar el teclado en Android
  • ¿Qué es el bloqueo de teclado en Android?
  • Android: Cómo evitar el cambio de tamaño de la ventana al mostrar el teclado virtual
  • Teclado Android: no inicializa el cliente de búfer compartido porque token = -12
  • La aplicación de Android no se actualiza después de ocultar el teclado virtual
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.