使用LinearLayout和Java中的TextView更改颜色(Android)

Rob*_* S. 3 java android android-widget android-layout

我是一个相对较新的Android开发人员,我注意到对我来说似乎很奇怪,我希望有人可以解释.我有LinearLayout ll.

这行代码在执行时失败了:

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

但是这行代码有效:

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

我假设它只是因为我的资源中定义了白色.但是,我也尝试在setBackgroundColor()中传递0xFFFFFF,但这也不起作用.

与我的TextView文本类似,这行代码在执行时失败:

text.setTextColor(R.color.white);
Run Code Online (Sandbox Code Playgroud)

我可以看到我的TextView,所以我知道我正确地初始化它(就像我的LinearLayout,我也可以看到).所以我想我的问题归结为:我如何正确使用LinearLayout.setBackgroundColor()和TextView.setTextColor()?

非常感谢提前.我已经阅读了文档并试图通过谷歌搜索在线查找信息,但没有提出任何建议.

Mar*_* G. 16

抢,

问题是setBackgroundColor()正在寻找一个颜色对象.所以你需要使用类似下面这一行的东西

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

要么

ll.setBackgroundColor(Color.parseColor("#ffffff"));
Run Code Online (Sandbox Code Playgroud)

而setBackgroundResource正在寻找用作背景的资源,即res文件夹中的某些内容.您可以使用它将背景设置为drawable或具有该性质的东西.

ll.setBackgroundResource(R.something.mydrawable);
Run Code Online (Sandbox Code Playgroud)