为什么R.color.white不能用于Color.WHITE呢?

Ete*_*ner 3 android android-layout android-resources

我正在尝试设置一个非常简单的布局背景:

  LinearLayout ll = (LinearLayout) findViewById(R.id.simple_layout);
Run Code Online (Sandbox Code Playgroud)

这有效:

  ll.setBackgroundColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)

但这不是:

  ll.setBackgroundColor(R.color.white);
Run Code Online (Sandbox Code Playgroud)

是的,我验证了它R.color.white是在colors.xml文件下定义的/res/values.

我错过了什么?

Ali*_*Ali 6

你需要使用 ll.setBackgroundResource(R.color.white)

  • 你是对的.我忘记了颜色值和颜色资源id之间的区别.有时我可能会这么盲目......并且编译器没有抱怨它,因为它们都是"int".另一种方法是将资源转换为颜色:`getResources().getColor(int);` (4认同)