2015-04-28 5 views
2

Я показываю AlertDialog на кнопке, на которой будут кнопки положительного и отрицательного значения, которые являются кнопками по умолчанию AlertDialog с сообщением.Android: Как изменить семейство шрифтов сообщения и кнопок AlertDialog

Я хочу изменить семейство шрифтов этих кнопок & сообщение, как его изменить?

Ниже мой код:

AlertDialog.Builder altDialog = new AlertDialog.Builder(context); 
altDialog.setMessage(Constants.WARNING_STEPS); 
altDialog.setTitle(Constants.WARNING); 
altDialog.setCancelable(true); 

altDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 

}); 

altDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 

    } 
}); 

altDialog.show(); 
+0

[HTTP: // блог .supenta.com/2014/07/02/как к-стиль-alertdialogs-как-а-про /] (http://blog.supenta.com/2014/07/02/how-to-style-alertdialogs -like-a-pro /) –

+0

использовать пользовательский макет в диалоговом окне проверить эту ссылку http://stackoverflow.com/questions/10538482/changing-font-in-alertdialog –

+0

Вы нашли решение? –

ответ

0

Для того, чтобы достичь этого, вам нужно две вещи:

  • создать AlertDialog через alertbuilder. Пример из официальной документации Android (http://developer.android.com/guide/topics/ui/dialogs.html):

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(R.string.dialog_fire_missiles) 
         .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           // FIRE ZE MISSILES! 
          } 
         }) 
         .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           // User cancelled the dialog 
          } 
         }); 
    // Create the AlertDialog object and return it 
    return builder.create(); 
    
    • Установите начертания в TextView в вашем диалоге оповещения следующим образом:

      AlertDialog dialog = builder.create(); 
      TextView textView = (TextView) dialog.findViewById(android.R.id.message); 
      Typeface face=Typeface.createFromAsset(getAssets(),"fonts/coolFont"); 
      textView.setTypeface(face); 
      dialog.show(); 
      
+0

Я хочу упомянуть, что вы не можете получить значения кнопок и текстовых просмотров, прежде чем показывать им, что создание диалога недостаточно для получения значений, проверенных на API23. – MeqDotNet

0
AlertDialog dialog = new AlertDialog.Builder(this).setMessage("Hello world").show(); 
TextView textView = (TextView) dialog.findViewById(android.R.id.message); 
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/yourFONT"); 
textView.setTypeface(face); 
+1

Было бы неплохо, если бы вы предоставили объяснение своего кода. – Dave

+0

... и ссылку с атрибуцией, потому что вы скопировали и вставили с https://stackoverflow.com/a/13052057/2684, который с 2012 года. –

1

ключевой момент здесь - адрес текстовых просмотров и кнопок в android. R.id файл, который android.R.id.button1 и android.R.id.button2 и android.R.id.button3, а также android.R.id.message

 AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)                           
        .setMessage("آیا مایل به خروج از حساب کاربری هستید؟") 
        .setCancelable(true) 
        .setPositiveButton("بله", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          ... 

         } 

        }) 
        .setNegativeButton("خیر", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 

          ... 
         } 

        }).show(); 

      TextView textView = (TextView) dialog.findViewById(android.R.id.message); 
      textView.setTypeface(FontHelper.getIranSansTypeface(MainActivity.this)); 

      Button btn1 = (Button) dialog.findViewById(android.R.id.button1); 
      btn1.setTypeface(FontHelper.getIranSansTypeface(MainActivity.this)); 

      Button btn2 = (Button) dialog.findViewById(android.R.id.button2); 
      btn2.setTypeface(FontHelper.getIranSansTypeface(MainActivity.this)); 
Смежные вопросы