Custom font for Android listview

android, fonts, listview

Solution

Here is the custom adapter class and the constructor

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);
}   

Put the font you want to use in your assets folder and fill your listview like this:

listAdapter = new CustomAdapter(this, R.layout.custom_list_text, R.array.abra_hotel, "name_of_font.ttf");

Problem

I have a custom font for my android activity. 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 throws NullPointerException. Why is it so? Any help is appreciated. Thanks. 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) ```

Original source

Related problems