2013-03-12 24 views
6

Próbuję zmienić rozmiar czcionki wiadomości AlertDialog.Zmiana rozmiaru czcionki dla wiadomości 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(); 
    } 
}); 

otrzymuję komunikat o błędzie, że „findViewById()” jest niezdefiniowana dla danego typu AlertDialog.Builder.

Odpowiedz

19

Użyj tego:

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

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

w przypadku:

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); 
    } 
}); 

Jeśli to nie pomoże, opublikuj swoje logcat błąd w swoim pytaniu.

+0

Z jakiegoś powodu mój progam ulega awarii po naciśnięciu przycisku przesyłania, aby wyświetlić komunikat z komunikatem ostrzegawczym – Alex

+1

Edytowałem swoją odpowiedź. Błąd, ponieważ używasz 'builder.show();'. – AwadKab

+0

To działało idealnie! Dziękuję bardzo! Próbuję również zmienić rozmiar przycisku "Zakończ", ale ponieważ jestem bardzo nowy w systemie Android, nie mogę wymyślić, jak to zrobić poprawnie. – Alex

0

Ponieważ nie używasz CustomDialog, proponuję, aby dodać TextView następująco,

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

To działało, dziękuję. Jednak mój program ulega awarii po naciśnięciu przycisku Submit. Zaktualizowałem mój kod powyżej. – Alex

1

metodę findViewById należy do typu 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

Z jakiegoś powodu mój progam ulega awarii po naciśnięciu przycisku przesyłania, aby wyświetlić komunikat z ostrzeżeniem o błędzie – Alex

+0

, jeśli pokażesz nam dane wyjściowe logcat :) –

+0

Użyłem rozwiązania AwadKab i udało mi się zmienić rozmiar komunikatu Alert bez żadnych błędów . Czy wiesz, czy mogę zrobić to samo dla przycisku "Exit"? Jestem bardzo początkującym deweloperem Androida i nie mogę wymyślić, jak to zrobić. Dziękuję Ci. – Alex

1

Spróbuj

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