我的问题是,我有从Runnable returnRes填充的自定义listView。它填充了我命名为lay(R.id.layoutList)的布局中的特定数据。我的目标是在listView中为每个布局设置不同的颜色,我想在每个布局之间切换颜色。第一个是深蓝色,第二个是浅蓝色,是深蓝色等等......这段代码运行良好,但没有结果,我的自定义listView仍然是黑色的,当我在XML中更改它时,它正在改变,但不是在它是从Java设置的。有任何想法吗?
由于
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if(myTasks != null && myTasks.size() > 0){
TasksAdapter.notifyDataSetChanged();
LinearLayout lay=(LinearLayout)findViewById(R.id.layoutList);
for(int i=0;i<myTasks.size();i++){
TasksAdapter.add(myTasks.get(i));
if(i>0){
if(i%2==0){
lay.setBackgroundColor(R.color.background);
}
}else{
if(i>0){
lay.setBackgroundColor(R.color.lightBlue);
}
}
}
}
ProgressDialog.dismiss();
TasksAdapter.notifyDataSetChanged();
}
};
答案 0 :(得分:1)
尝试谷歌搜索。 getResources().R.color.lightBlue
不是实际颜色,而是 id
色彩资源(这是颜色的整数代码)。如果你使用它会很好
在API中需要资源ID,但是setBackgroundColor
实际上需要颜色的代码。
colors
和ids
都被编码为int
,所以它是
很容易让一个人混淆另一个。
答案 1 :(得分:1)
yourlayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.yourbackgroundimage))