Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set custom typeface for arrayadapter

Here's my code:

String[] filled_arr;
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.list_item, R.id.tv_wi, filled_arr);
listview.setAdapter(adapter);

and here's the typeface:

final Typeface typeface = Typeface.createFromAsset(getAssets(), "Constantia.ttf");

How can I set it for the adapter?

like image 609
Paktalin Avatar asked Dec 24 '22 06:12

Paktalin


2 Answers

I've already solved the problem by overriding the array adapter. Hope, it'll help someone else)

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
            android.R.layout.simple_list_item_1, filled_arr) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
            TextView text = (TextView) view.findViewById(android.R.id.text1);
            text.setTypeface(typeface);
            return view;
        }
    };
like image 187
Paktalin Avatar answered Jan 01 '23 17:01

Paktalin


public class CustomAdapter extends ArrayAdapter<DataModel> {

    private ArrayList<DataModel> dataSet;
    Context mContext;


    // View lookup cache
    private static class ViewHolder {
        TextView txtName;
        CheckBox checkBox;
    }

    public CustomAdapter(ArrayList<DataModel> data, Context context) {
        super(context, R.layout.fathers_meet_text_check_layout, data);
        this.dataSet = data;
        this.mContext = context;

    }
    @Override
    public int getCount() {
        return dataSet.size();
    }

    @Override
    public DataModel getItem(int position) {
        return dataSet.get(position);
    }


    @Override
    public View getView(int position, View convertView, @NonNull ViewGroup parent) {

        final ViewHolder viewHolder;
        final View result;
        View v = convertView;
        if (convertView == null) {
            viewHolder = new ViewHolder();
            convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.fathers_meet_text_check_layout, parent, false);
            viewHolder.txtName = (TextView) convertView.findViewById(R.id.txtName);
            viewHolder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);


            result=convertView;
            convertView.setTag(viewHolder);

        } else {
            viewHolder = (ViewHolder) convertView.getTag();
            result=convertView;
        }

        DataModel item = getItem(position);

        //use typeface
        Typeface customfont=Typeface.createFromAsset(parent.getContext().getAssets(),"VANAVILAvvaiyar.otf");

        viewHolder.txtName.setText(item.name);

        //set typeface
        viewHolder.txtName.setTypeface(customfont);
            viewHolder.checkBox.setChecked(item.checked);




        return result;
    }
}
like image 30
Swati Ssk Avatar answered Jan 01 '23 18:01

Swati Ssk