-2

我收集的HashMap<String,Object>数据为ArrayList.

我使用以下方法将HashMap数据添加到ArrayList.

mylist = new ArrayList<HashMap<String, Object>>();
for (Data dt : data) {

    HashMap<String, Object> map = new HashMap<String, Object>();                
    map.put("id", dt.getWeekNo());
    map.put("description", dt.getDesc());
    map.put("Amount", dt.getAmount());
    mylist.add(map);
}

Data是一个单独的类,仅用于GettersSetters目的。

现在我的输出是这样的:

3 | Income  | 1000
5 | Income  | 1500
3 | Expense |  250
5 | Expense |  500

我希望它在我的列表视图中如下所示。

3 | Income : 1000 | Expense : 250
5 | Income : 1500 | Expense : 500

任何想法来实现这一点。我不知道如何实现,我也不知道任何想法,所以我不知道从哪里开始。

更新:这是我使用方法将列表调整为列表视图的getview()方式

ListAdapter adapter
    = new SimpleAdapter(this, mylist, R.layout.txnlist,
                        new String[] {"id", "description", "Amount" },
                        new int[] { R.id.txntext1, R.id.txntext2, R.id.txntext3 }) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.txnlist, null);
        }
        Collection<Object> str = mylist.get(position).values();
        ArrayList<Object> al1 = new ArrayList<Object>(str);
        TextView amnt = (TextView) v.findViewById(R.id.txntext3);
        if (al1.get(2).toString().equals("Income")) 
            amnt.setTextColor(Color.GREEN);
        if (al1.get(2).toString().equals("Expense"))
            amnt.setTextColor(Color.RED);
        return super.getView(position, v, parent);
    }
};
ListView lv1 = (ListView) findViewById(R.id.repListView);

帮帮我吧朋友。

提前致谢。

4

2 回答 2

1

哇,我一点也不知道为什么你会用变量来保存这样的数据,但无论如何,根据我的理解,你想要这样的东西:

for (int i=0; i<(myList.getCount()/2); i++){
    Log.v("Line " + i, myList.getItem(i).getWeekNo() + "|" + 
        myList.getItem(i).getDesc() + ":" + myList.getItem(i).getAmount() + "|" + 
        myList.getItem(mylist.getCount()/2 + i).getDesc() + ":" + 
            mylist.getItem(myList.getCount()/2 + i).getAmount();
}

让我知道。

于 2013-05-07T07:22:25.210 回答
0

您必须创建一个适配器并覆盖方法“getView(...)”。在 getView 内部,您必须为列表视图的每个项目扩展布局,并且您必须分配您的值。

这里有一个例子http://www.ezzylearning.com/tutorial.aspx?tid=1763429

于 2013-05-07T07:02:57.240 回答