J'ai une activité nommée whereActity
qui a également des dialogues enfants. Maintenant, je veux afficher cette activité comme une boîte de dialogue pour une autre activité.
Comment puis je faire ça?
J'ai une activité nommée whereActity
qui a également des dialogues enfants. Maintenant, je veux afficher cette activité comme une boîte de dialogue pour une autre activité.
Comment puis je faire ça?
Réponses:
Pour démarrer l'activité en tant que dialogue, je l'ai défini comme ceci dans
AndroidManifest.xml
:Utilisez cette propriété à l'intérieur de votre
activity
balise pour éviter que votre boîte de dialogue n'apparaisse dans la liste des applications récemment utiliséesSi vous souhaitez empêcher la destruction de votre boîte de dialogue / activité lorsque l'utilisateur clique en dehors de la boîte de dialogue:
Après
setContentView()
dans votreActivity
utilisation:this.setFinishOnTouchOutside(false);
Maintenant, lorsque je l'appelle,
startActivity()
il s'affiche sous forme de boîte de dialogue, avec l'activité précédente affichée lorsque l'utilisateur appuie sur le bouton de retour.Notez que si vous utilisez
ActionBarActivity
(ou le thème AppCompat), vous devrez utiliser à la@style/Theme.AppCompat.Dialog
place.la source
@style/Theme.AppCompat.Dialog
this.setFinishOnTouchOutside(false);
après lasetContentView()
méthode pour éviter que l'activité ne soit détruite lorsque vous cliquez en dehors de la boîte de dialogue que vous avez créée.Utilisez ce code pour que l'activité de dialogue ne soit pas fermée lorsque l'utilisateur touche en dehors de la boîte de dialogue:
nécessite l'API niveau 11
la source
Vous pouvez définir ce style dans values / styles.xml pour effectuer un Splash plus ancien:
Et utilisez-le AndroidManifest.xml:
la source
@drawable/trans
: vous devriez pouvoir utiliser@android:color/transparent
ce qui créerait unColorDrawable
à utiliser comme arrière-plans.<item name="windowNoTitle">true</item>
(pas "android"). Voyez ici . Je ne suis pas sûr des autres articles.1 - Vous pouvez utiliser la même activité que la boîte de dialogue et le plein écran, dynamiquement:
Appelez
setTheme(android.R.style.Theme_Dialog)
avant d'appelersetContentView(...)
etsuper.oncreate()
dans votre activité.2 - Si vous ne prévoyez pas de changer le style de thème d'activité, vous pouvez utiliser
(comme mentionné par @faisal khan)
la source
<activity android:theme="@android:style/Theme.Dialog" />
) et définir le thème de l'activité sur une boîte de dialogue ou une activité sur onCreate stackoverflow.com/a/35915764/2898715Si vous avez besoin de la version compatible avec App
style.xml
yourmanifest.xml
la source
<item name="windowNoTitle">true</item>
pour que ça marche pour moi. J'ai également ajouté<item name="android:windowActionBar">false</item>
pour faire bonne mesure.<item name="android:windowNoTitle">true</item>
n'a pas fonctionné (Android 5.0.1), et j'ai dû changer pour<item name="windowNoTitle">true</item>
Si votre activité est affichée sous forme de boîte de dialogue, ajoutez simplement un bouton au xml de votre activité,
Attachez ensuite un écouteur de clics dans le code Java de votre activité. Dans l'auditeur, appelez simplement
finish()
Cela devrait fermer votre boîte de dialogue et vous ramener à l'activité d'appel.
la source
Si vous souhaitez supprimer l'en-tête d'activité et fournir une vue personnalisée pour la boîte de dialogue, ajoutez ce qui suit au bloc d'activité de votre manifeste
et concevez votre activité_layout avec la vue souhaitée
la source
Définissez le thème dans votre fichier manifeste Android.
Et définissez l'état de la boîte de dialogue au toucher pour terminer.
la source
Créer une activité en tant que boîte de dialogue, voici un exemple complet
AndroidManife.xml
<activity android:name=".appview.settings.view.DialogActivity" android:excludeFromRecents="true" android:theme="@style/Theme.AppCompat.Dialog"/>
DialogActivity.kt
activity_dialog.xml
la source
Parfois, vous pouvez obtenir l'exception qui est donnée ci-dessous
Causé par: java.lang.IllegalStateException: vous devez utiliser un thème Theme.AppCompat (ou un descendant) avec cette activité.
Donc, pour résoudre, vous pouvez utiliser une solution simple
ajoutez le thème de votre activité dans le manifeste en tant que boîte de dialogue pour appCompact.
Cela peut être utile à quelqu'un.
la source