基于我的RSS阅读器的ListView中的内容的行颜色

时间:2011-03-04 17:20:32

标签: android listview adapter

我是一名Android新手,我基于免费的IBM android RSS教程构建了一个简单的RSS阅读器应用程序。如果该行的类别等于特定的字符串,我想更改每行的背景颜色。

我编写了以下“for循环”,它发现了每个项目的类别,如果该类别等于“新闻”则运行if语句。目前,只要通过新闻类别提供Feed,整个列表视图的背景颜色就会发生变化。

有没有人想帮助初学者?

for(int i = 0; i < feed.getItemCount(); i++)
{
    if (feed.getItem(i).getCategory().equals("News"))
    {
       ListView.setBackgroundColor(0x77ee0044);
    }
}

1 个答案:

答案 0 :(得分:0)

您需要在适配器的getView()方法中执行此操作。

在getView()中返回视图之前,您可以在视图上调用setBackgroundColor()或使用其他setBackgroundFoo()方法之一。

修改 - 根据您的代码,在创建适配器时,请尝试:

ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem>(
  this,android.R.layout.simple_list_item_1,feed.getAllItems(­)) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        if (getItem(position).getCategory().equals("News")) {
            view.setBackgroundColor(0xffff0000); // red
        }
        return view;
    }
};

这会覆盖getView()以正确调整列表项视图的背景。