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.

  • La aplicación de Android no se actualiza después de ocultar el teclado virtual
  • SoftKeyboard para Android
  • Android: Cómo evitar que el diseño se presione cuando se invoca el teclado
  • Superposición del sistema android 4.0
  • Disposición de teclado personalizada de Android dejando un margen de blanco en el lateral
  • Cordova Ionic Keyboard plugin deshabilitar completamente en "Init"
  • ¿Cómo puedo detectar si el teclado del software es visible en el dispositivo Android?
  • Cómo abrir el teclado Android "123"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.