2013-03-12 8 views
6

Sto tentando di modificare la dimensione del carattere del messaggio AlertDialog.Modifica la dimensione del carattere per un messaggio di AlertDialog

Button submit = (Button) findViewById(R.id.submitButton); 
submit.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View view) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(
       Application1GoodExample.this); 
     builder.setMessage("Your form has been successfully submitted"); 
     TextView textView = (TextView) findViewById(android.R.id.message); 
     textView.setTextSize(40); 
     builder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel();    
      } 
     }); 

     builder.show(); 
    } 
}); 

ricevo un messaggio di errore dicendo che "findViewById()" non è definito per il tipo di AlertDialog.Builder.

risposta

19

Utilizzare questa:

AlertDialog alert = builder.create(); 
alert.show(); 

TextView msgTxt = (TextView) alert.findViewById(android.R.id.message); 
msgTxt.setTextSize(16.0); 

nel tuo caso:

Button submit = (Button) findViewById(R.id.submitButton); 

submit.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(Application1GoodExample.this); 

     builder.setMessage("Your form has been successfully submitted"); 
     builder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel();    
      } 
     }); 

     // this will solve your error 
     AlertDialog alert = builder.create(); 
     alert.show(); 
     alert.getWindow().getAttributes(); 

     TextView textView = (TextView) alert.findViewById(android.R.id.message); 
     textView.setTextSize(40); 
     Button btn1 = alert.getButton(DialogInterface.BUTTON_NEGATIVE); 
     btn1.setTextSize(16); 
    } 
}); 

Se questo non vi ha aiutato, inviare un vostro errore LogCat nella sua interrogazione.

+0

Per qualche motivo il mio programma si blocca quando preme il pulsante di invio per visualizzare un messaggio di dialogo di avviso – Alex

+1

Ho modificato la mia risposta. Errore perché si usa 'builder.show();'. – AwadKab

+0

Questo ha funzionato perfettamente! grazie mille! Sto anche cercando di cambiare la dimensione del pulsante "Esci", ma dato che sono molto nuovo per Android non riesco a capire come farlo correttamente. – Alex

0

Dal momento che non si utilizza CustomDialog, vi suggerisco di aggiungere TextView come seguendo,

TextView textView = (TextView) findViewById(android.R.id.message); // remove builder object 
+0

Questo ha funzionato, grazie. Tuttavia, il mio programma si arresta in modo anomalo quando premo il pulsante Invia. Ho aggiornato il mio codice qui sopra. – Alex

1

il metodo findViewById appartiene al tipo View.

AlertDialog.Builder builder = new AlertDialog.Builder(Application1GoodExample.this); 
builder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
    dialog.cancel();   
    } 
}); 
builder.setMessage("Your form has been successfully submitted"); 
AlertDialog theDialog=builder.create(); 
TextView textView = (TextView) theDialog.findViewById(android.R.id.message); 
textView.setTextSize(40); 

theDialog.show(); 
+0

Per qualche motivo il mio programma si blocca quando preme il pulsante di invio per visualizzare un messaggio di dialogo di avviso – Alex

+0

forse se ci mostra l'output logcat :) –

+0

Ho usato la soluzione di AwadKab e sono riuscito a cambiare la dimensione del messaggio di avviso senza ottenere errori . Sai se posso fare lo stesso per il pulsante "Esci"? Sono molto nuovo allo sviluppo di Android e non riesco a capire come farlo. grazie. – Alex

1

Prova questa

AlertDialog dialog = new AlertDialog.Builder(this).setMessage("Hello world").show(); 
TextView textView = (TextView) dialog.findViewById(android.R.id.message); 
textView.setTextSize(40);