从arraylist中获取值并将其提供给hashmap

时间:2011-03-25 12:55:42

标签: android arraylist

我已经从XML文件中解析了数据并将其存储在arraylist中。我想将arraylist的内容复制到hashmap.i m中给出代码。

 ArrayList<String> items=new ArrayList<String>();
        ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
        HashMap<String, String> map = new HashMap<String, String>();

        try {
            XmlPullParser xpp=getResources().getXml(R.xml.call_record_request_structure);
            while (xpp.getEventType()!=XmlPullParser.END_DOCUMENT) {
            if (xpp.getEventType()==XmlPullParser.START_TAG) {
                String name=xpp.getName();
                String temp="productName";
                //items.add(name);
            if (name.equals(temp)) {
            String pro=xpp.nextText();
                items.add(pro);
                int count=items.size();
                for(int i=0;i<count;i++) {
                    map = new HashMap<String, String>();
                    map.put("product", items.get(i));
                    mylist.add(map);
                }
            }
            }
            xpp.next();
            }
            }
            catch (Throwable t) {
            Toast
            .makeText(this, "Request failed: "+t.toString(), 4000)
            .show();
            }
SimpleAdapter mHistory = new SimpleAdapter(this,mylist , R.layout.prodlist_supp,
                    new String[] {"product"},
                    new int[] {R.id.products});
        listview.setAdapter(mHistory);

但是当我运行代码时它会崩溃。任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

试试这个:在循环结束后添加地图。

map = new HashMap<String, String>();

for(int i=0;i<count;i++) {

            map.put("product", items.get(i));

        }
mylist.add(map);

如果问题仍然存在,请显示您的堆栈跟踪。