在Android Java代码中使用ColorStateList

时间:2011-06-17 15:54:06

标签: android background-color

我有一个包含项目的列表,以及2个colorliststates,一个用于赔率,一个用于平均值。 基本上,它重新解决了这个问题:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:color="#fff" />
    <item android:state_pressed="true" android:color="#999" />
</selector>

如何使用colorliststate应用于项目?在布局中,没有奇数或偶数的概念,所以我不能。在java代码中,我加载后无法找到使用colorliststate的方法:

getContext().getResources().getColorStateList(R.color.list_even);

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用:

// you must place your file in the res/color folder
widget.setTextColor(getContext().getResources().getColor(R.color.list_even));

如果您使用的是XML,请将其放在textColor属性中:

<SomWidget
    android:textColor="@color/list_even"/>

答案 1 :(得分:0)

首先定义两个不同的选择器drawable。您可以在drawable xml中引用color.xml或直接输入颜色值。使用color.xml更加花哨。

<强>第二 我猜你有ListAdapter实现。因此,在getView(..)实现中,您可以为奇数项和偶数项设置不同的背景可绘制项。我想你想要修改背景而不是文本颜色,因为你发布了一个引用按下状态的例子。

在代码中表示,没有在这里进行eclipse并完全正确的语法:

if (position % 2 == 0) {
  view.setBackGroundDrawable(R.drawable.selector1);
}
else {
  view.setBackgroundDrawable(R.drawable.selector2);
}

我的例子符合您的要求吗?