studio sobre programacion herramientas fundamentos con avanzado aplicaciones android text popup android-edittext

sobre - manual de programacion android



¿Cómo mostrar un cuadro de edición de texto "sobre" la pantalla? (1)

Tengo una aplicación que tiene un diseño primario de retrato (está fijo como retrato) y hay un lugar para escribir el texto. Me gustaría lanzar como una ventana emergente en orientación horizontal con la imagen de fondo empañada. Sé que hay un Popup Widget, pero cualquier idea para girar el cuadro de edición de texto sería genial. Girarlo en una vista de retrato (cuadro de texto solamente) cuando se desliza el teclado también funcionaría, al igual que mostrar una nueva pantalla con el cuadro de texto en la diapositiva del teclado.


La solución más fácil para su problema es mostrar su EditText dentro de una actividad temática de dialog separada que se EditText desde dentro de su actividad principal (fijada en retrato).

La actividad EditText no debe tener su orientación fija, por lo que girará como es de esperar cuando deslice el teclado.

Crear la actividad de entrada de texto

Cree una nueva actividad que contenga solo la vista de edición de texto y cualquier otra cosa que quiera incluir (probablemente botones OK / CANCELAR y tal vez una etiqueta?). Dentro del manifiesto establece su tema en Theme.Dialog .

<activity android:name="TextEntryActivity" android:label="My Activity" android:theme="@android:style/Theme.Dialog"/>

Fogging o Blurring las actividades detrás de un diálogo se realiza mediante la modificación de las propiedades de la ventana de la actividad en primer plano (su cuadro de diálogo de entrada de texto). Dentro de su método onCreate use getWindow().setFlags para aplicar difuminado a cualquier actividad de fondo.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

Lanzar y leer valores introducidos de la actividad de entrada de texto

Use startActivityForResult para iniciar la actividad de entrada de texto. Dentro de esa actividad, llame a setResult para devolver la cadena de texto ingresada dentro del intento devuelto usando las técnicas descritas en esta publicación .

Reemplace el método onActivityResult para escuchar el resultado de la actividad secundaria.

Disparando lanzamiento en el teclado expuesto

Puede iniciar la actividad de entrada de texto siempre que lo desee, pero si desea mostrarla siempre cuando el teclado está expuesto, puede capturar este evento explícitamente.

Comience añadiendo el atributo android:configChanges a la entrada del manifiesto de la actividad del retrato. Debe estar registrado para escuchar keyboardHidden .

android:configChanges="keyboardHidden"

Dentro de esa actividad, anule onConfigurationChanged para iniciar la actividad de entrada de texto.

@Override public void onConfigurationChanged(Configuration newConfig) { Intent i = new Intent(this,TextEntryActivity.class); startActivityForResult(i, STATIC_INTEGER_VALUE); }

Es posible que desee comprobar para confirmar que el teclado está expuesto (en lugar de oculto) utilizando la nueva variableConfig antes de iniciar la actividad de entrada de texto.

También puede usar la misma técnica para regresar automáticamente de la actividad de ingreso de texto cuando el teclado está oculto.