Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.