java如何在RecyclerView中使用的字符串上使用自定义字体?
我有一个非常简单的RecyclerView,但我想在传递给视图的字符串上放置一个自定义字体。我有一些额外的东西,但你可以忽略这些代码。这是我的适配器:
public class Adapter extends RecyclerView.Adapter<Adapter.Holder> {
private List<ListItem> ListData;
private LayoutInflater inflater;
private ItemClickCallBack itemClickCallBack;
public interface ItemClickCallBack {
void onItemClick(int p);
void onSecondaryClick(int p);
}
public void setItemClickCallBack(final ItemClickCallBack itemClickCallBack){
this.itemClickCallBack= itemClickCallBack;
}
public Adapter(List<ListItem> ListData, Context context) {
inflater = LayoutInflater.from(context);
this.ListData = ListData;
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.list_item, parent, false);
return new Holder(view);
}
@Override
public void onBindViewHolder(Holder holder, int position) {
ListItem item = ListData.get(position);
holder.title.setText(item.getTitle());
holder.subtitle.setText(item.getSubTitle());
if(item.isStar()){
holder.thumbnail.setImageResource(R.drawable.ic_star_black_24dp);
}else{
holder.thumbnail.setImageResource(R.drawable.ic_star_border_black_24dp);
}
}
@Override
public int getItemCount() {
return ListData.size();
}
public void setListData (ArrayList<ListItem> exerciseList){
this.ListData.clear();
this.ListData.addAll(exerciseList);
}
class Holder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView title;
private View container;
private TextView subtitle;
private ImageView avatar;
private ImageView thumbnail;
public Holder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.textRoot);
container = itemView.findViewById(R.id.listItem);
container.setOnClickListener(this);
subtitle = (TextView) itemView.findViewById(R.id.txt_subtitle);
thumbnail = (ImageView) itemView.findViewById(R.id.secondaryIcon);
thumbnail.setOnClickListener(this);
avatar = (ImageView) itemView.findViewById(R.id.img_avatar);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.listItem){
itemClickCallBack.onItemClick(getAdapterPosition());
}else{
itemClickCallBack.onSecondaryClick(getAdapterPosition());
}
}
}
}
这是我保存数据的地方。我知道我运行过几次同样的东西,但我只是看到了滚动。总之,下面是代码:
public class Data {
final private static String duas[] = {"Hello to you","Bye to you","Walaa"};
final private static String Trans[] = {"Hmmmm", "Bruh","Khalas"};
private final static int face = R.drawable.ic_tag_faces_black_24dp;
public static List<ListItem> getListData() {
List<ListItem> data = new ArrayList<>();
for (int x = 0; x < 4; x++) {
for (int i = 0; i < duas.length; i++) {
ListItem item = new ListItem();
item.setTitle(duas[i]);
item.setSubTitle(Trans[i]);
data.add(item);
}
}
return data;
}
}
如果无法在字符串上设置自定义字体,我需要做什么才能将所有数据设置为文本视图
谢谢——
沙鲁赫·拉扎
# 1 楼答案
你应该创建一个资产文件夹,然后创建一个子文件夹字体,并将所有字体放入其中
在你的课程中:
# 2 楼答案
你需要一个自定义文本视图来使用自定义字体
请参考此链接:How to make a custom TextView?