eche RecyclerView项的java Set自定义字体
我使用了RecyclerView
和CardView
,我想在其中一个RecyclerView
项中的TextView
中添加一个自定义字体
- 我应该在适配器中的何处设置字体李>
- 另外,我如何准确设置字体李>
例如:设置durgent。ttf在{
这是我的adapter.java
:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
public List<RecyclerItem> listItems;
private Context mContext;
public MyAdapter(List<RecyclerItem> listItems, Context mContext) {
this.listItems = listItems;
this.mContext = mContext;
}
@Override
public ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);
final ViewHolder holder = new ViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int position = holder.getAdapterPosition();
// if (position == 0) {
Toast.makeText(mContext, listItems.get(position).getTitle(),Toast.LENGTH_SHORT).show();
/*
}
if (position == 1) {
Toast.makeText(mContext,"Android",Toast.LENGTH_SHORT).show();
}
*/
}
});
return holder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final RecyclerItem itemList = listItems.get(position);
holder.txtTitle.setText(itemList.getTitle());
holder.txtDescription.setText(itemList.getDescription());
holder.txtOptionDigit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Display option menu
PopupMenu popupMenu = new PopupMenu(mContext, holder.txtOptionDigit);
popupMenu.inflate(R.menu.option_menu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.mnu_item_save:
Toast.makeText(mContext, "Saved " + listItems.get(position).getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.mnu_item_delete:
//Delete item
Toast.makeText(mContext, "Deleted " + listItems.get(position).getTitle(), Toast.LENGTH_SHORT).show();
listItems.remove(position);
notifyDataSetChanged();
break;
default:
break;
}
return false;
}
});
popupMenu.show();
}
});
}
@Override
public int getItemCount() {
return listItems.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView txtTitle;
public TextView txtDescription;
public TextView txtOptionDigit;
public ViewHolder(View itemView) {
super(itemView);
txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
txtDescription = (TextView) itemView.findViewById(R.id.txtDescription);
txtOptionDigit = (TextView) itemView.findViewById(R.id.txtOptionDigit);
}
}
}
# 1 楼答案
Android Docs about Fonts
按照Android文档中的描述设置字体系列
将字体系列应用于文本视图
创建包含两个不同项目的recycler视图,例如, FontViewHolder(在此CardView中包括启用字体的文本视图)&;NormalViewHolder,根据条件,可以使用特定的ViewHolder。例如
通过这种方式,您可以在将来重新使用字体系列,并根据您的上下文扩展功能
# 2 楼答案
试试这个:
# 3 楼答案
@M.bala7请按照以下步骤在不同位置设置不同字体
1-首先创建资产文件夹 右键单击应用程序>;新>;文件夹>;资产文件夹>;选择main>;点击ok
2-将字体放入资产文件夹
然后在代码中