Comment définir la taille de la police pour le texte des boutons de la boîte de dialogue
J'ai une application android qui utilise des boîtes de dialogue personnalisées qui sont gonflés à partir de XML mises en page. Le contenu de la boîte de dialogue vue venir de la mise en page XML, mais les réels positifs et négatifs des boutons sont ajoutés en appelant le constructeur de la setPositiveButton et setNegativeButton méthodes, donc je n'ai aucun contrôle dessus (ou au moins de ne pas savoir comment contrôler) le style des boutons eux-mêmes.
Voir le onCreateDialog méthode ci-dessous à partir de mon LoginConfirmationDialog.java fichier qui s'étend DialogFragment. Essentiellement, il apparaît une très simple boîte de dialogue qui demande confirmation de qui est la connexion (c'est à dire "Êtes-vous Joe Schmoe?", avec les boutons Oui et Non).
Le XML de mise en page, dans ce cas, un seul TextView, et pour rendre cela facile (parce que les utilisateurs seront les travailleurs de la construction, avec des gros noueuse les doigts sales qui ont besoin d'un grand texte et de gros boutons), j'ai fait la police pour le TextView assez grand. Les deux boutons bien que beaucoup plus petite police de caractères pour le texte, et depuis ils ne font pas partie de ma mise en page et sont ajoutés à la setPositiveButton et setNegativeButton méthodes, comment puis-je contrôler la taille de la police?
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = this.getArguments();
String empName = args.getString("empName");
//Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_login_confirmation, null);
TextView message = (TextView)view.findViewById(R.id.txtLoginConfirmationMessage);
message.setText("Are you " + empName + "?");
builder.setView(view);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmPositiveClick(LoginConfirmationDialog.this);
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmNegativeClick(LoginConfirmationDialog.this);
}
});
//Create the AlertDialog object and return it
return builder.create();
}
source d'informationauteur Jim
Vous devez vous connecter pour publier un commentaire.
Au lieu de retourner
builder.create()
essayez ceci.-M'a fallu du temps, pour l'intégrer à Asok de répondre, puisque j'ai utilisé les classes internes anonymes pour les boutons, j'ai donc besoin d'obtenir une poignée sur le bouton de références. Les travaux de cette. Assurez-vous qu'il va après le messageDialog.show() de la ligne:
Remarque: Il est recommandé d'utiliser la sp comme une unité de la taille du texte. Contrairement à px, c'est un équipement de la densité indépendante.
Puisque vous êtes déjà à l'aide d'un fichier xml pour le dialogue, pourquoi ne pas inclure les deux boutons de la mise en page et définissez les
onClick
gestionnaires dans la boîte de dialogue de création, quelque chose comme cela devrait fonctionner. Je suis à l'aide de quelque chose de similaire.Voici un exemple rapide:
Je suis également très friands de l'utilisation de la suite de la mise en texte tailles, ce qui permet pour les différentes tailles d'écran pour obtenir une taille différente de texte (Vous pouvez jouer avec les
float
valeur en fonction de vos besoins):Vous devriez vérifier la réponse suivante:
Dans Dialog.java (Android src) un ContextThemeWrapper est utilisé. De sorte que vous pouvez copier l'idée et de faire quelque chose
Il vous suffit de modifier la ligne de code suivante:
<item name="android:textSize">10sp</item>
à la taille désirée.Et n'oubliez pas de vérifier les commentaires de la réponse aussi.
Meilleur de la chance.
Mon approche est d'obtenir les boutons en
onResume()
et les configurer, il y