我有一个列出了EXPENSES和INCOMES的列表。我希望ListViewer自动将背景更改为绿色表示收入,红色表示费用,这是否可行?
final DbCon database = new DbCon(this);
final ListView Viewer = (ListView)findViewById(R.id.historyViewer);
//date1, time1, desc1, val1, cat1, type1
final SimpleAdapter La = new SimpleAdapter(this, database.GetMonths(), R.layout.mviewer, new String[] {"month"}, new int[] {R.id.month_name});
Viewer.setAdapter(La);
答案 0 :(得分:1)
没有看到任何代码,很难给出任何“真正的”帮助,但这是可能的。您可以使用
之类的内容更改背景颜色rowView.setBackgroundColor(Color.GREEN);
假设rowView
是View
中的当前List
。您还可以根据需要更改styles
和themes
。
答案 1 :(得分:0)
是的,只需将逻辑放在适配器的getView方法中,例如:
public View getView(int position, View convertView, ViewGroup parent) {
View myView;
if(convertView == null) {
myView = new MyView();
} else {
myView = (MyView) convertView;
}
if(myList.get(position).isExpense) {
myView.setBackgroundColor(Color.RED);
} else {
myView.setBackgroundColor(Color.GREEN);
}
return myView;
}
修改强>
是的,我发现您使用的是SimpleAdapter
。这不足以做你想做的事。您需要通过继承BaseAdapter
(或类似的东西)并覆盖必要的方法来创建自己的适配器,例如:我在上面展示了getView
。