Установить пользовательский шрифт (TypeFace) в диалоге в Android - PullRequest
6 голосов
/ 21 ноября 2011

Я бы хотел изменить шрифт в textview, который находится в диалоге:

dialog = new Dialog(MyActivity.this);
dialog.setContentView(R.layout.my_dialog);
dialog.setCancelable(true);
((TextView)findViewById(R.id.dialog_box_title_text)).setTypeface(Typeface.createFromAsset(getAssets(), "font.ttf"));

Но каждый раз, когда я получаю исключение времени выполнения:

E / AndroidRuntime (4475): java.lang.IllegalStateException: не удалось выполнить метод действия

Ты хоть представляешь, что не так? Потому что нормально работает нормально. Проблема только при попытке изменить шрифт в диалоге.

Ответы [ 2 ]

17 голосов
/ 21 ноября 2011

Попробуйте и дайте мне знать, что произойдет.

((TextView)dialog.findViewById(R.id.dialog_box_title_text)).setTypeface(Typeface.createFromAsset(getAssets(), "font.ttf"));
2 голосов
/ 16 января 2014

Для DialogFragment это будет работать (я нацеливаюсь на SDK 19, а у меня minSDK 14), если вы поместите файл шрифта в папку assets().

Итак, если вы используете сэндвич с мороженым (ICS) и позже, попробуйте это:

@Override public void onActivityCreated(Bundle savedInstanceState)
{
    // Call to the Super Class, performing the default behavior
    super.onActivityCreated(savedInstanceState);
    // Change the Dialog Title Text Typeface
    ((TextView)getDialog().findViewById(android.R.id.title)).setTypeface(
        Typeface.createFromAsset(getActivity().getAssets(),"Roboto-Thin.ttf"));
}
...