在RecyclerView适配器中设置自定义字体

Gar*_*day 4 fonts android android-adapter

我有一个加载RecyclerView的片段,但我想在其中一个RecyclerView的项目中向TextView添加自定义字体.我的适配器应该在哪里设置字体?我怎么设置字体?

我无法使用此代码,

Typeface font = Typeface.createFromAsset((getAssets(),
            "myfont.ttf");
Run Code Online (Sandbox Code Playgroud)

因为我不在活动中.那我应该如何获得字体?

这是我的适配器,

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

    private String[] mDataset;

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mText;
        public ViewHolder(android.support.v7.widget.CardView v) {
            super(v);
            mText = (TextView) v.findViewById(R.id.text);
        }
    }

    public DiscoverRecyclerAdapter(String[] myDataset) {
        mDataset = myDataset;
    }

    @Override
    public DiscoverRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_discover, parent, false);
        ViewHolder vh = new ViewHolder((android.support.v7.widget.CardView)v);
        return vh;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.mText.setText(mDataset[position]);
    }

    @Override
    public int getItemCount() {
        return mDataset.length;
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该在适配器中设置字体以及如何设置字体?

Com*_*are 7

我的适配器应该在哪里设置字体?

无论是onCreateViewHolder()ViewHolder构造函数中还是在构造函数中.

那我应该如何获得字体?

有了那个代码.创建TypefaceActivity(或片段,如果RecyclerView是在一个片段).通行证Typeface进入DiscoverRecyclerAdapter.直接使用Typefacein onCreateViewHolder()或将其传递给ViewHolder构造函数.特别是,创建一个实例,而Typeface不是每行一个.


Sud*_*eej 5

这应该解决这个问题,将它添加到您的recyclerviewadapter viewHolder构造函数中

tf_regular = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/BebasNeue Regular.ttf");
            this.mainText.setTypeface(tf_regular);
Run Code Online (Sandbox Code Playgroud)