Vahe Muradyan
Vahe Muradyan

Reputation: 1115

Android. set different fonts to each item of ListView

I have a ListView.I want to to set different font to each item of ListView .Who can help me with an examplr? I want something like this http://www.ulduzsoft.com/wp-content/uploads/2012/01/font-preference-android-emulator-150x150.png

Upvotes: 1

Views: 648

Answers (1)

Minas
Minas

Reputation: 1422

Do something like this inside list adapter's getView

public class MyAdapter extends ArrayAdapter<JSONObject> {
    Context mContext;
    private LayoutInflater inflater;

    public MyAdapter(Context context, List<JSONObject> list) {
        super(context, 0, list);
        this.mContext = context;
        inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;
        final Typeface type1 = Typeface.createFromAsset(getAssets(), "myFancyFont.ttf");
        final Typeface type2 = Typeface.createFromAsset(getAssets(), "DroidSans.ttf");

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.item_feed, parent, false);

            holder = new ViewHolder();
            holder.textview = (TextView) convertView.findViewById(R.id.label_title);


        } else {
            holder = (ViewHolder) convertView.getTag();
        }

       if(position == 0) {
           holder.textview.setTypeface(type1);
       } else {
           holder.textview.setTypeface(type2);
       }
       holder.textview.setText("item with pos." + position)
       return convertView;
    }

    class ViewHolder {
        TextView textivew;
    }
}

Also you can define typefaces somewhere else as static final.

Upvotes: 1

Related Questions