解决Android中getResources().getColor()方法过时的问题

本文介绍了从Android 6.0开始,旧的颜色设置方法getResources().getColor()已被废弃,推荐使用ResourcesCompat或ContextCompat提供的新方法。并给出了两种具体实现方案。

1. 前言

最近新项目开发中,发现用Java代码设置控件颜色的方法getResources().getColor()过时了。上网查了一下,才知道从Android 6.0开始,这个方法被Google设置成过时了。既然过时了,那么就会有新的方法咯!

2. 解决方案

2.1 方案一

ResourcesCompat.getColor(getResources(), R.color.black, theme)

2.2 方案二

ContextCompat.getColor(context, R.color.black)

我用的是方案二,因为方案一要设置主题。当然在theme这个参数,直接传null也是可以的。

 

如果想进一步交流和学习的同学,可以加一下QQ群哦!

StockItemAdapter stockItemAdapter = new StockItemAdapter(mContext); holder.mStockRecyclerView.setAdapter(stockItemAdapter); stockItemAdapter.setDetailBeans(stockBeans.get(position).getDetail()); package person.tools.treasurebox.customview.adapter; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.google.gson.Gson; import java.util.List; import java.util.Random; import person.tools.treasurebox.R; /** * 单个股票的adapter 横向 */ public class StockItemAdapter extends RecyclerView.Adapter<StockItemAdapter.ItemViewHolder> { private List<String> detailBeans; private Context mContext; public StockItemAdapter(Context mContext) { this.mContext = mContext; } @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_content_detail, parent, false); return new ItemViewHolder(view); } @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { holder.mTabView.setText(detailBeans.get(position)); Log.d("TestApp", "解析detailBeans: " + new Gson().toJson(detailBeans.get(position))); // 模拟文本显示颜色 随机显示颜色 股票的涨跌 int random = new Random().nextInt(3); if (random == 1) { holder.mTabView.setTextColor(mContext.getResources().getColor(R.color.tabTextColor));// 灰色 } else if (random == 2) { holder.mTabView.setTextColor(mContext.getResources().getColor(R.color.greenColor));// 绿色 } else { holder.mTabView.setTextColor(mContext.getResources().getColor(R.color.redColor));// 红色 } } @Override public int getItemCount() { return 0; } public void setDetailBeans(List<String> detailBeans) { this.detailBeans = detailBeans; notifyDataSetChanged(); } class ItemViewHolder extends RecyclerView.ViewHolder { TextView mTabView; public ItemViewHolder(@NonNull View itemView) { super(itemView); mTabView = itemView.findViewById(R.id.tabView); } } } 这一行没有打印 是为什么
10-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值