ventana studio personalizados personalizado emergente ejemplo edittext dialogos dialogo custom cuadro con android android-activity android-dialog

studio - Actividad de Android como diálogo



popup android studio (8)

Tengo una actividad llamada whereActity que también tiene diálogos secundarios. Ahora, quiero mostrar esta actividad como un diálogo para otra actividad.

¿Cómo puedo hacer eso?


1 - Puede usar la misma actividad tanto para el diálogo como para la pantalla completa, dinámicamente:

Llame a setTheme(android.R.style.Theme_Dialog) antes de llamar a setContentView(...) y super.oncreate() en su actividad.

2 - Si no planeas cambiar el estilo del tema de la actividad puedes usar

<activity android:theme="@android:style/Theme.Dialog" />

(como lo menciona @faisal khan)


Establecer el tema en su archivo de manifiesto de Android.

<activity android:name=".LoginActivity" android:theme="@android:style/Theme.Dialog"/>

Y establece el estado de diálogo al tocar para finalizar.

this.setFinishOnTouchOutside(false);


Para iniciar la actividad como diálogo, lo AndroidManifest.xml en AndroidManifest.xml :

<activity android:theme="@android:style/Theme.Dialog" />

Utilice esta propiedad dentro de su etiqueta de activity para evitar que su cuadro de diálogo aparezca en la lista de aplicaciones utilizadas recientemente

android:excludeFromRecents="true"

Si desea evitar que su diálogo / actividad se destruya cuando el usuario haga clic fuera del diálogo:

Después de setContentView() en tu Activity usa:

this.setFinishOnTouchOutside(false);

Ahora cuando llamo startActivity() se muestra como un diálogo, con la actividad anterior mostrada cuando el usuario presiona el botón Atrás.

Tenga en cuenta que si está utilizando ActionBarActivity (o el tema AppCompat), necesitará usar @style/Theme.AppCompat.Dialog en @style/Theme.AppCompat.Dialog lugar.


Puede definir este estilo en values ​​/ styles.xml para realizar un Splash más antiguo:

<style name="Theme.UserDialog" parent="android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@drawable/trans</item> </style>

Y utilízalo AndroidManifest.xml:

<activity android:name=".SplashActivity" android:configChanges="orientation" android:screenOrientation="sensor" android:theme="@style/Theme.UserDialog">


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.

android:theme="@style/Base.Theme.AppCompat.Dialog"

y diseña tu actividad_layout con la vista deseada


Si necesita la versión Appcompat

style.xml

<!-- Base application theme. --> <style name="AppDialogTheme" parent="Theme.AppCompat.Light.Dialog"> <!-- Customize your theme here. --> <item name="windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style>

yourmanifest.xml

<activity android:name=".MyActivity" android:label="@string/title" android:theme="@style/AppDialogTheme"> </activity>


Si su actividad se representa como un diálogo, simplemente agregue un botón al xml de su actividad,

<Button android:id="@+id/close_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Dismiss" />

Luego adjunte un detector de clics en el código Java de su actividad. En el oyente, simplemente llame a finish()

Button close_button = (Button) findViewById(R.id.close_button); close_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } });

Eso debería descartar tu diálogo, devolviéndote a la actividad de llamada.


Use este código para que la actividad del diálogo no se cierre cuando el usuario toque fuera del cuadro de diálogo:

this.setFinishOnTouchOutside(false);

requiere nivel API 11