android - RecyclerView 自定义字体内部适配器

标签 android android-recyclerview

我正在使用 RecyclerView 显示三种不同的文本,并且我想为每个文本应用自定义的 Typeface。现在,在我的适配器中的 ViewHolder 下,我已经放置了 Typeface 代码,但不确定如何将它们应用到每个 textView

适配器.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);


    }
}
}

最佳答案

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

关于android - RecyclerView 自定义字体内部适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38454720/

相关文章:

Android 迭代 RecyclerView 中的嵌套对象

android - 我想一次滚动多个回收器 View 如何实现

android - MVVM 设置 Recyclerview 适配器,其中包含 fragment 中的项目

android - 如何设置使用 Kotlin 检查的 RecyclerView 中的第一个单选按钮?

android - 如何添加真正的加载屏幕

java - Stackoverflow EditText 小部件

Android图片大小困惑

Android - 运行应用程序时生成失败错误

android - RecyclerView OnClick 在其他位置更改项目

android - RecyclerView重叠没有阴影