Android - 从Java代码改变背景

时间:2011-02-16 12:46:22

标签: android android-layout

我的问题是,我有从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();
    }
  };

2 个答案:

答案 0 :(得分:1)

尝试谷歌搜索。 getResources().R.color.lightBlue不是实际颜色,而是 id 色彩资源(这是颜色的整数代码)。如果你使用它会很好 在API中需要资源ID,但是setBackgroundColor 实际上需要颜色的代码。

当你下到它时,

colorsids都被编码为int,所以它是 很容易让一个人混淆另一个。

答案 1 :(得分:1)

yourlayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.yourbackgroundimage))