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

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 に答える