如何使用彩色项目自定义 ListView?背景?
我创建了一个 ArrayListListView
的数据。我正在使用 SimpleAdapter
。
当列表项的 ID % 10 == 0 时,是否可以更改列表项的背景?
这是代码(生成布局的方法):
private void fillData() {
Cursor c = this.mDbManager.getNgOrderDetailByOrderNumber(this.mNumber);
ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
if (!c.isAfterLast()) {
do {
// ... filling HashMap and putting it to ArrayList
} while (c.moveToNext());
}
SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.list_item,
new String[] { "product", "ordered", "price", "discount" },
new int[] { R.id.ProductTextView, R.id.OrderedTextView,
R.id.PriceTextView, R.id.DiscountTextView });
ListView l = (ListView) findViewById(android.R.id.list);
l.setAdapter(adapter);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以在适配器中重写 getView 来更改视图。请记住,ListView 重用视图实现,因此如果将颜色更改为项目 10,请确保将所有其他视图的颜色设置为相反的颜色。
例如
You override getView in your adapter to make changes to the view. Keep in mind that ListView reuses the view implementations, so if you change the color to item 10, make sure you set the color to the opposite for all other views.
e.g.
这是代码,希望对其他用户有帮助
Here is the code, hope it'll be helpful for other users
为此,您需要创建一个自定义阵列适配器,然后在条件合适的情况下更改背景颜色。
查看这篇文章的示例:自定义 ArrayAdapter setBackground in getView
To accomplish this, you need to create a custom array adapter and then change the background color if the conditions are right.
Check out this post for an example: Custom ArrayAdapter setBackground in getView