Tengo una actividad llamada whereActity
que también tiene cuadros de diálogo secundarios. Ahora, quiero mostrar esta actividad como un cuadro de diálogo para otra actividad.
¿Cómo puedo hacer eso?
Tengo una actividad llamada whereActity
que también tiene cuadros de diálogo secundarios. Ahora, quiero mostrar esta actividad como un cuadro de diálogo para otra actividad.
¿Cómo puedo hacer eso?
Respuestas:
Para comenzar la actividad como diálogo, lo definí así en
AndroidManifest.xml
:Use esta propiedad dentro de su
activity
etiqueta para evitar que su cuadro de diálogo aparezca en la lista de aplicaciones utilizadas recientementeSi desea evitar que su diálogo / actividad se destruya cuando el usuario hace clic fuera del diálogo:
Después
setContentView()
de suActivity
uso:this.setFinishOnTouchOutside(false);
Ahora, cuando lo llamo,
startActivity()
se muestra como un cuadro de diálogo, con la actividad anterior que se muestra cuando el usuario presiona el botón Atrás.Tenga en cuenta que si está utilizando
ActionBarActivity
(o el tema AppCompat), deberá utilizarlo@style/Theme.AppCompat.Dialog
en su lugar.fuente
@style/Theme.AppCompat.Dialog
this.setFinishOnTouchOutside(false);
después delsetContentView()
método para evitar que la actividad se destruya cuando hace clic fuera del cuadro de diálogo que creó.Use este código para que la actividad del diálogo no se cierre cuando el usuario toque fuera del cuadro de diálogo:
requiere API nivel 11
fuente
Puede definir este estilo en values / styles.xml para realizar un Splash más antiguo:
Y úsalo AndroidManifest.xml:
fuente
@drawable/trans
: deberías poder usar@android:color/transparent
lo que crearía unColorDrawable
para usar como fondo.<item name="windowNoTitle">true</item>
(no "android"). Ver aquí . No estoy seguro acerca de los otros artículos.1 - Puede usar la misma actividad como diálogo y pantalla completa, dinámicamente:
Llame
setTheme(android.R.style.Theme_Dialog)
antes de llamarsetContentView(...)
ysuper.oncreate()
en su Actividad.2 - Si no planea cambiar el estilo del tema de actividad, puede usar
(como lo menciona @faisal khan)
fuente
<activity android:theme="@android:style/Theme.Dialog" />
) y configure programáticamente el tema de la actividad en un diálogo o una actividad en onCreate stackoverflow.com/a/35915764/2898715Si necesita la versión de Appcompat
style.xml
yourmanifest.xml
fuente
<item name="windowNoTitle">true</item>
para que funcione para mí. También agregué<item name="android:windowActionBar">false</item>
por si acaso.<item name="android:windowNoTitle">true</item>
no funcionó (Android 5.0.1), y tuve que cambiar a<item name="windowNoTitle">true</item>
Si su actividad se representa como un cuadro de diálogo, simplemente agregue un botón al xml de su actividad,
Luego, adjunte un detector de clics en el código Java de su Actividad. En el oyente, simplemente llame
finish()
Eso debería descartar su diálogo y regresarlo a la actividad de llamada.
fuente
Si desea eliminar el encabezado de actividad y proporcionar una vista personalizada para el cuadro de diálogo, agregue lo siguiente al bloque de actividad de su manifiesto
y diseñe su activity_layout con la vista deseada
fuente
Establezca el tema en su archivo de manifiesto de Android.
Y configure el estado del diálogo al tacto para finalizar.
fuente
Crear actividad como diálogo, aquí hay un ejemplo completo
AndroidManife.xml
<activity android:name=".appview.settings.view.DialogActivity" android:excludeFromRecents="true" android:theme="@style/Theme.AppCompat.Dialog"/>
DialogActivity.kt
activity_dialog.xml
fuente
Algunas veces puede obtener la excepción que se proporciona a continuación
Causado por: java.lang.IllegalStateException: debe utilizar un tema Theme.AppCompat (o descendiente) con esta actividad.
Entonces, para resolver, puede usar una solución simple
agregue el tema de su actividad en manifiesto como diálogo para appCompact.
Puede ser útil para alguien.
fuente