Android listview的自定义字体
我有一个自定义字体为我的android活动。
MainActivity.class
private void initControls() { // TODO Auto-generated method stub header = (TextView) findViewById (R.id.tvAccommodations); lv = (ListView) findViewById (R.id.lvAccommodations); text = (TextView) findViewById (R.id.textView); Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/heartbre.ttf"); header.setTypeface(tf); text.setTypeface(tf); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.abra_hotel, R.layout.custom_list_text); lv.setAdapter(adapter); header.setText(value);
custom_list_text.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" android:text="@string/app_name" android:paddingLeft="6dip" />
Android抛出NullPointerException。 为什么这样? 任何帮助表示赞赏。 谢谢。
logcat的:
03-08 19:48:03.859: E/AndroidRuntime(413): Caused by: java.lang.NullPointerException 03-08 19:48:03.859: E/AndroidRuntime(413): at com.say.philippineexplorer.PlaceAccommodations.initControls(PlaceAccommodations.java:34) 03-08 19:48:03.859: E/AndroidRuntime(413): at com.say.philippineexplorer.PlaceAccommodations.onCreate(PlaceAccommodations.java:22)
这是自定义适配器类和构造函数
class CustomAdapter extends ArrayAdapter<CharSequence>{ Context context; int layoutResourceId; CharSequence data[] = null; Typeface tf; public CustomAdapter(Context context, int layoutResourceId, CharSequence[] data, String FONT ) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; tf = Typeface.createFromAsset(context.getAssets(), FONT); }
把你想要在你的资产文件夹中使用的字体,并填写你的列表视图像这样:
listAdapter = new CustomAdapter(this, R.layout.custom_list_text, R.array.abra_hotel, "name_of_font.ttf");
你不能直接应用字体到列表视图,你需要为列表视图创build自定义适配器,并更改它的字体更多细节单击下面的堆栈后,它已经讨论。
如何更改ListView的颜色和字体