Android ListView - 根据值更改元素的背景

时间:2013-04-25 01:05:06

标签: android listview background

我有一个列出了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);

2 个答案:

答案 0 :(得分:1)

没有看到任何代码,很难给出任何“真正的”帮助,但这是可能的。您可以使用

之类的内容更改背景颜色
rowView.setBackgroundColor(Color.GREEN);

假设rowViewView中的当前List。您还可以根据需要更改stylesthemes

答案 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