Droit de justifier le texte dans AlertDialog
Est-il possible de faire un clic droit justifier le texte dans un AlertDialog titre et du message?
Je suis en train de montrer hébreu messages mais ils sont en train d'apparaître justifié à gauche.
J'ai utilisé cette méthode: stackoverflow.com/questions/14439538/...
OriginalL'auteur theblitz | 2011-05-25
Vous devez vous connecter pour publier un commentaire.
Aussi loin que je peux voir dans le code de
AlertDialog
etAlertController
vous ne pouvez pas accéder à laTextView
s responsable de message et le titre.Vous pouvez utiliser la réflexion pour atteindre
mAlert
champ dans AlertDialog instance, puis de nouveau utiliser la réflexion pour l'accèsmMessage
etmTitle
champs demAlert
. Bien que je ne recommanderais pas cette approche car elle repose sur des éléments internes (ce qui pourrait changer dans le futur).Comme un autre (et probablement beaucoup mieux) de la solution, vous pouvez appliquer un thème personnalisé via
AlertDialog
constructeur. Cela vous permettra de droit-justifier tous lesTextView
s dans cette boîte de dialogue.Ce devrait être plus facile et plus robuste approche.
Voici les instructions étape par étape:
L'étape 1. Créer
res/values/styles.xml
fichier. Voici son contenu:L'étape 2. Créer
RightJustifyAlertDialog.java
fichier. Voici son contenu:L'étape 3. Utilisation
RightJustifyAlertDialog
dialogue:L'étape 4. Vérifier les résultats:
Vous pouvez hériter le thème par défaut et ajoutez simplement vos modifications. Par exemple, dans votre
styles.xml
vous pouvez créer un nouveau thème appeléCustomTheme
et commencer comme ceci:<style name="CustomTheme" parent="android:Theme.Light">
. Ensuite, vous n'avez qu'à ajouter les articles que vous souhaitez modifier.J'ai essayé de faire mydialog = new AlertDialog.Builder(this,R. de style.MyDialogTheme), mais il affirme que le constructeur n'existe pas.
Ok - merci. Je vais aussi télécharger le mini-projet que j'ai créé et donner un lien vers elle.
ce n'est pas de travailler sur le AppCompat et de dialogue
OriginalL'auteur inazaruk
Si vous voulez un moyen rapide et facile pour ce faire, je voudrais juste créer et de modifier la valeur par défaut d'alerte à l'aide de AlertDialog.Générateur de rapports. Vous pouvez même créer une méthode de convenance et de la classe comme ceci:
Bien sûr, vous pouvez également changer la gravité, CENTRE de centre de l'alignement à la place de la droite ou de la gauche par défaut.
Fonctionne très bien, merci.
Fonctionne très bien, mais j'ai eu un autre problème. Titre & texte sont alignées beau, mais les boutons ne sont pas. Comment obtenir des boutons par id?
J'ai ouvert une question ici: stackoverflow.com/q/33620800/1334761
OriginalL'auteur n8tr
C'est une vieille question, mais il y a une solution très simple. En supposant que vous utilisez
MinSdk 17
, vous pouvez ajouter ceci à votrestyles.xml
:Et dans le
AlertDialog.Builder
vous avez juste besoin de spécifier ceAlertDialogCustom
dans le constructeur:OriginalL'auteur yshahak
Après avoir lutté avec pendant une heure (les solutions ci-dessus ne fonctionne pas pour moi), j'ai réussi à aligner l'AlertDialog titre et du message à droite, sans écraser tous les styles, il suffit de changer la gravité et de la mise en page params.
Dans DialogFragment:
De la fonction réelle:
OriginalL'auteur Elad Nava
Pour le réglage de l'orientation de la page de la boîte de dialogue d'alerte de RTL vous pouvez utiliser OnShowListener méthode.
après le réglage, titre , message , .... l'utilisation de cette méthode.
OriginalL'auteur Hamid