为了账号安全,请及时绑定邮箱和手机立即绑定

Java:如何在 RecyclerView Adapter 中为 ContextCompat

Java:如何在 RecyclerView Adapter 中为 ContextCompat

largeQ 2023-04-26 10:50:51
我找到了解决方案,但我仍然把我的问题留在下面。我使用setBackgroundResource而不是ContextCompat,解决方案:holder.mTextPar.setBackgroundResource(R.drawable.border_box);原问题:我需要使用 ContextCompat 设置我的项目元素背景,但我不知道将什么放入上下文这是我试过的:public Context context;@Overridepublic void onBindViewHolder(@NonNull GameViewHolder holder, int position) {  holder.mTextPar.setBackground(ContextCompat.getDrawable(context, R.drawable.border_box));}当我打开这个 GameAdapter“工作”的 Activity 时,应用程序立即崩溃并且错误报告更喜欢我有这个的这一行holder.mTextPar.setBackground(ContextCompat.getDrawable(context, R.drawable.border_box));
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

所有告诉您将上下文作为参数的答案都是错误的或多余的,您已经有一种从视图中获取上下文的方法:


@Override

public void onBindViewHolder(@NonNull GameViewHolder holder, int position) {

  Context context = holder.itemView.getContext(); 

}


查看完整回答
反对 回复 2023-04-26
?
Helenr

TA贡献1780条经验 获得超3个赞

在您的适配器构造函数中,添加上下文作为参数。


public Context context;


public YourAdapterClass(Context context){

    this.context = context;

}


@Override

public void onBindViewHolder(@NonNull GameViewHolder holder, int position) {

    holder.mTextPar.setBackground(ContextCompat.getDrawable(context, R.drawable.border_box));

}


查看完整回答
反对 回复 2023-04-26
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

不清楚你说的是什么适配器,ArrayAdapter适配器RecyclerView;请提及;还可以编写更多代码来帮助其他人了解需要上下文的内容/位置。通常,如果它是RecyclerViewAdapter,则视图的上下文将会,例如itemView.getContext(),如果是ArrayAdapter,则有一个getContext()方法。



查看完整回答
反对 回复 2023-04-26
  • 3 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信