Android:更改listview中项目的背景颜色

时间:2014-10-15 07:51:32

标签: android listview android-listview

我想创建一个截止日期的备注列表。如果到达截止日期,背景颜色应该更改。

我尝试管理ArrayAdapter中的项目,并将适配器绑定到listview活动的列表视图。

我找到了方法getChildCount()和getHeaderViewsCount(),但都返回0。

这是我尝试过的代码:

ListView lv = (ListView) findViewById(android.R.id.list);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStringList));
for (int i = lv.getFirstVisiblePosition(); i < lv.getChildCount(); i++) {
            View v = lv.getChildAt(i);
            Log.d("MyActivity", String.valueOf(v.getId()));
            v.setBackgroundColor(Color.GREEN);
        }

当getFirstVisiblePosition返回0并且getChildCount返回0时,将永远不会输入循环。

这些是访问列表视图的子元素的正确方法吗?

4 个答案:

答案 0 :(得分:0)

您的背景颜色应该在适配器的getView方法中设置为一种颜色或另一种颜色,您应该只在适配器上调用notifyDataSetChanged来请求刷新元素。

答案 1 :(得分:0)

应为“自定义列表视图”,请参阅here

答案 2 :(得分:0)

使用自定义适配器,然后在getView中,您可以检查行内容并相应地调整颜色。

这是一个很好的教程: http://webdeveloperpadawan.blogspot.co.uk/2014/09/android-listview-with-differing-rows.html

答案 3 :(得分:0)

试试这个

v.setBackgroundResource(R.Color.GREEN);
相关问题