我想在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:无法执行活动的方法
你知道出了什么问题吗?因为通常它工作正常。只有在尝试更改对话框中的字体时才会出现问题。
答案 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"));
}