在Android中的对话框中设置自定义字体(TypeFace)

时间:2011-11-21 11:38:11

标签: android dialog typeface

我想在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 个答案:

答案 0 :(得分:17)

试试这个,让我知道会发生什么。

((TextView)dialog.findViewById(R.id.dialog_box_title_text)).setTypeface(Typeface.createFromAsset(getAssets(), "font.ttf"));

答案 1 :(得分:2)

对于DialogFragment,只要您将字体文件放在assets()文件夹中,这将起作用(我的目标是SDK 19,我有minSDK 14)。

所以如果你正在运行冰淇淋三明治(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"));
}