2013-04-25 55 views
0

我有一個列出了開銷和收入的列表。我希望ListViewer自動將背景更改爲綠色的收入或紅色的費用,這可能嗎?Android ListView - 根據值更改元素背景

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

是的,幾乎任何事情都是可能的。它只需要嘗試 – codeMagic 2013-04-25 01:11:08

+0

http://stackoverflow.com/questions/16176398/how-can-i-change-the-background-color-of-list-items-based-on-the-data-being-disp – StoneBird 2013-04-25 01:24:15

+0

在您的'Adapters'' getView()'方法中,您可以根據當前值更改它,如我的答案 – codeMagic 2013-04-25 01:44:45

回答

1

沒有看到任何代碼,它很難給出任何「真正的」幫助,但它是可能的。你可以用一些改變背景顏色像

rowView.setBackgroundColor(Color.GREEN); 

假設rowViewList當前的View。您也可以根據自己的需要更改stylesthemes

+0

我已經使用我正在使用的代碼更新了主帖子。 – arleitiss 2013-04-25 01:40:50

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,如上所示。

+0

我已經用我使用的代碼更新了主帖子。 – arleitiss 2013-04-25 01:40:02

+0

@arleitiss看我的編輯 – LuxuryMode 2013-04-25 11:50:17

相關問題