资源。getColor(int id)方法已弃用。

@ColorInt
@Deprecated
public int getColor(@ColorRes int id) throws NotFoundException {
    return getColor(id, null);
}

我该怎么办?


当前回答

在活动中使用ContextCompat

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

在改编电影

private Context context;


context.getResources().getColor()

其他回答

如果你不需要这些资源,使用parseColor(String): Color.parseColor(“# cc0066”)

对于所有的Kotlin用户:

context?.let {
    val color = ContextCompat.getColor(it, R.color.colorPrimary)
    // ...
}

在活动中使用ContextCompat

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

在改编电影

private Context context;


context.getResources().getColor()

最好的等效方法是使用ContextCompat。getColor和ResourcesCompat。色鬼。我做了一些扩展函数用于快速迁移:

@ColorInt
fun Context.getColorCompat(@ColorRes colorRes: Int) = ContextCompat.getColor(this, colorRes)

@ColorInt
fun Fragment.getColorCompat(@ColorRes colorRes: Int) = activity!!.getColorCompat(colorRes)

@ColorInt
fun Resources.getColorCompat(@ColorRes colorRes: Int) = ResourcesCompat.getColor(this, colorRes, null)

在Kotlin中的RecyclerView中

inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    fun bind(t: YourObject, listener: OnItemClickListener.YourObjectListener) = with(itemView) {
        textViewcolor.setTextColor(ContextCompat.getColor(itemView.context, R.color.colorPrimary))
        textViewcolor.text = t.name
    }
}