我知道,不建议使用getColor,我们可以通过以下方式对其进行修复:
ContextCompat.getColor(context, R.color.your_color);
但是在“片段”中我得到了以下信息:所需的上下文已找到上下文?
那么如何避免这种情况呢?
答案 0 :(得分:0)
使用getActivity()。getResource()。getColor(R.color.youColor)
答案 1 :(得分:0)
将容器Activity
的上下文传递到ContextCompat
方法中。
ContextCompat.getColor(getActivity(), R.color.your_color);
答案 2 :(得分:0)
编写以下代码:
context?.let { ContextCompat.getColor(it, R.color.colorWhite) }
实际上,您正在传递类型为context
的{{1}}。但是您必须通过类型Context?
。为此,您必须检查Context
不应为null。
因此,使用context
函数。如果let
不为null,则将执行let块中的代码。
答案 3 :(得分:0)
getActivity()
的上下文可以为null
,因此您应该执行以下操作:
在您的片段中
private Context context;
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.context = context;
}
到getColor
ContextCompat.getColor(context, R.color.your_color);
答案 4 :(得分:0)
这样使用
set1.fillColor= ContextCompat.getColor(requireActivity(), R.color.chart_fill)
我用 ContextCompat
和 requireActivity()
代替 getActivity()