Ho un'app per Android che utilizza alcune finestre di dialogo personalizzate che vengono gonfiate dai layout XML. I contenuti della vista della finestra di dialogo provengono dal layout XML, ma i pulsanti positivi e negativi vengono aggiunti chiamando i metodi setPositiveButton e setNegativeButton del builder, quindi non ho il controllo su (o almeno non so come controllare) lo stile dei pulsanti stessi.Come impostare la dimensione del carattere per il testo dei pulsanti di dialogo
Vedere il metodo onCreateDialog di seguito dal file LoginConfirmationDialog.java che estende DialogFragment. Fondamentalmente apre una finestra di dialogo molto semplice che richiede la conferma di chi sta effettuando l'accesso (ad es. "Sei Joe Schmoe?", Con i pulsanti Sì e No).
Il layout XML in questo caso ha solo una singola TextView, e per semplificare (perché gli utenti saranno lavoratori edili con grandi dita sporche e nodose che hanno bisogno di testo grande e pulsanti grandi), ho creato il font per TextView bello grosso. I due pulsanti hanno un carattere molto più piccolo per il loro testo, e dal momento che non fanno parte del mio layout e vengono aggiunti con i metodi setPositiveButton e setNegativeButton, come posso controllare la dimensione del carattere?
@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();
}
Dal momento che si sta già utilizzando un file xml per la finestra perché non basta includere i due pulsanti nel layout e impostare il 'onClick' gestori nella creazione di una finestra di dialogo? – jnthnjns
Suppongo che sia un buon punto. Mi piace usare i pulsanti predefiniti per l'aspetto che si ottiene con loro, ma suppongo che potrei aggiungere i pulsanti direttamente al layout e impostare gli ascoltatori su di essi. – Jim
approccio alternativo è fornito in questa domanda [http://stackoverflow.com/questions/8881710/how-to-reduce-alertdialog-builder-title-font-size-and-positive-button-size] [ 1] [1]: http://stackoverflow.com/questions/8881710/how-to-reduce-alertdialog-builder-title-font-size-and-positive-button-size –