在Android中的对话框中设置自定义字体(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")); 

但每次我得到运行时exception:

E / AndroidRuntime(4475):java.lang.IllegalStateException:无法执行活动的方法

你知道什么是错的吗? 因为通常它工作正常。 只有在尝试更改对话框中的字体时才会出现问题。

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

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

对于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")); }