Jacques Krause Jacques Krause - 4 months ago 42
Android Question

RecyclerView Custom Typeface Inside Adapter

I am using

RecyclerView
to show three different text and I want to apply a custom
Typeface
to each one. Now in my adapter under
ViewHolder
I have put the
Typeface
code but not sure how to apply them to each
textView
.

Adapter.java

public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {

List<AdapterData> mItems;

public Adapter() {
super();
mItems = new ArrayList<>();
AdapterData data = new AdapterData();
data.setTextOne("Title 1");
data.setTextTwo("Title 2");
data.setTextThree("Title 3");
mItems.add(data);

data = new AdapterData();
data.setTextOne("Title 1");
data.setTextTwo("Title 2");
data.setTextThree("Title 3");

data = new AdapterData();
data.setTextOne("Title 1");
data.setTextTwo("Title 2");
data.setTextThree("Title 3");
mItems.add(data);


}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.cardview_items, viewGroup, false);
return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
AdapterData data = mItems.get(i);
viewHolder.textOne.setText(data.getTextOne());
viewHolder.textTwo.setText(data.getTextTwo());
viewHolder.textThree.setText(data.getTextThree());

}


@Override
public int getItemCount() {

return mItems.size();
}

class ViewHolder extends RecyclerView.ViewHolder{

public TextView textOne;
public TextView textTwo;
public TextView textThree;

Typeface customTypeOne = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface One.ttf");
Typeface customTypeTwo = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Two.ttf");
Typeface customTypeThree = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Three.ttf");


public ViewHolder(View itemView) {
super(itemView);
textOne = (TextView)itemView.findViewById(R.id.textView1);
textTwo = (TextView)itemView.findViewById(R.id.textView2);
textThree = (TextView)itemView.findViewById(R.id.textView3);


}
}
}

Answer
class ViewHolder extends RecyclerView.ViewHolder {

        public TextView textOne;
        public TextView textTwo;
        public TextView textThree;

        Typeface customTypeOne = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface One.ttf");
        Typeface customTypeTwo = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Two.ttf");
        Typeface customTypeThree = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Three.ttf");


        public ViewHolder(View itemView) {
            super(itemView);
            textOne = (TextView) itemView.findViewById(R.id.textView1);
            textOne.setTypeface(customTypeOne);
            textTwo = (TextView) itemView.findViewById(R.id.textView2);
            textTwo.setTypeface(customTypeTwo);
            textThree = (TextView) itemView.findViewById(R.id.textView3);
            textThree.setTypeface(customTypeThree);
        }
    }