gpt4 book ai didi

java - 如何在没有上下文的android Holder类中使用Font Awesome?

转载 作者:行者123 更新时间:2023-11-29 04:45:57 26 4
gpt4 key购买 nike

我正在尝试在我的应用中使用很棒的字体。但是我不知道如何在不将上下文作为参数传递的情况下使用它。这是我的 xml 文件:

    <Button
android:layout_below="@id/author"
android:id="@+id/compare_btn"
android:layout_toRightOf="@id/cart_btn"
android:layout_width="45dp"
android:layout_height="wrap_content"
android:text="@string/fa_random" />

这是我的 Holder 类,它当然不会扩展 Activity 或 fragment 。

    public class ListRowViewHolder extends RecyclerView.ViewHolder {
protected NetworkImageView productImageURL;
protected TextView review;
protected TextView productName;
protected RelativeLayout recLayout;
protected TextView categoryId;
protected TextView price;
protected Button wishListBtn, cartBtn, compareBtn;

public ListRowViewHolder(View view) {
super(view);
this.productImageURL = (NetworkImageView) view.findViewById(R.id.thumbnail);
this.productName = (TextView) view.findViewById(R.id.title);
this.review = (TextView) view.findViewById(R.id.url);
this.recLayout = (RelativeLayout) view.findViewById(R.id.recLayout);
this.categoryId = (TextView) view.findViewById(R.id.subreddit);
this.price = (TextView) view.findViewById(R.id.author);
this.wishListBtn=(Button) view.findViewById(R.id.wishlist_btn);
this.cartBtn=(Button) view.findViewById(R.id.cart_btn);//set Font Awesome here
this.compareBtn=(Button) view.findViewById(R.id.customer_button);//
view.setClickable(false);
}

}

这是我的回收器适配器中的一种方法,它根据 json 数据设置 textview 的文本

 @Override
public void onBindViewHolder(final ListRowViewHolder listRowViewHolder, int position) {

ListItems listItems = listItemsList.get(position);
listRowViewHolder.itemView.setSelected(focusedItem == position);
String local ="http://carrottech.com/lcart/media/catalog/product/"+listItems.getProductImageURL().trim();
System.out.print(local+"sdaaaaaaaaaaaaaaaaaaaaaa");
listRowViewHolder.getLayoutPosition();
mImageLoader = MySingleton.getInstance(mContext).getImageLoader();
listRowViewHolder.productImageURL.setImageUrl(local, mImageLoader);
listRowViewHolder.productImageURL.setDefaultImageResId(R.drawable.reddit_placeholder);

listRowViewHolder.productName.setText(Html.fromHtml(listItems.getProductName()));
listRowViewHolder.categoryId.setText(Html.fromHtml(String.valueOf(listItems.getCategoryId())));
listRowViewHolder.price.setText(Html.fromHtml(String.valueOf(listItems.getProductPrice())));
listRowViewHolder.review.setText(Html.fromHtml("Write Review"));
listRowViewHolder.wishListBtn.setText(Html.fromHtml("&#f001;"));
}

我一直在使用这样的字体类设置 Font awesome:

public class FontManager {

public static final String ROOT = "fonts/",
FONTAWESOME = "fonts/fontawesome-webfont.ttf";

public static Typeface getTypeface(Context context, String font) {
return Typeface.createFromAsset(context.getAssets(), font);
}

}

在我以前的 Activity 或 fragment 中

  Typeface iconCalendar = FontManager.getTypeface(getContext(), FontManager.FONTAWESOME);
jcustomerDobIcon.setTypeface(iconCalendar);

但是如果没有要传递给 FontManager 类的上下文怎么办呢?请帮忙!

最佳答案

how to do it if dont have a context to pass to the FontManager class

使用 View.getContext() 方法从 ListRowViewHolder 类中的 View 获取 Context

就像在 onBindViewHolder 方法中将 Context 传递给 FontManager 类:

Typeface iconCalendar = FontManager.getTypeface(
listRowViewHolder.wishListBtn.getContext(),
FontManager.FONTAWESOME);
listRowViewHolder.wishListBtn.setTypeface(iconCalendar);
listRowViewHolder.wishListBtn.setText(Html.fromHtml("&#f001;"));

关于java - 如何在没有上下文的android Holder类中使用Font Awesome?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com