0

我有一个列出费用和收入的清单。我希望 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);
4

2 回答 2

1

在没有看到任何代码的情况下,很难提供任何“真正的”帮助,但这是可能的。您可以使用类似的东西更改背景颜色

rowView.setBackgroundColor(Color.GREEN);

假设rowView是您当前ViewList. 您也可以根据自己的需要进行styles更改。themes

于 2013-04-25T01:28:00.707 回答
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我上面显示的。

于 2013-04-25T01:28:32.803 回答