我是一名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);
}
}
答案 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()以正确调整列表项视图的背景。