我如何从android listview获取值?

时间:2012-04-10 11:54:01

标签: android android-layout

嗨,这是我的代码,我想访问我在列表项目中放入maplist的KEY_ID点击变量.. 请帮助我如何做到这一点。

ArrayList (HashMap)  (String, String) mapList = new ArrayList(HashMap(String, String)) ();
    XMLParser parser = new XMLParser();
    Document doc = parser.getDomElement(xml); 
// getting DOM element
    NodeList nl = doc.getElementsByTagName(KEY_Route);

    // looping through all song nodes <song>
    for (int i = 0; i < nl.getLength(); i++) {
        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();

        Element e = (Element) nl.item(i);

        // adding each child node to HashMap key => value

        map.put(KEY_ID, parser.getValue(e, KEY_ID));
        map.put(KEY_SchoolName, parser.getValue(e, KEY_SchoolName));
        map.put(KEY_ChildrenName, parser.getValue(e, KEY_ChildrenName));
        map.put(KEY_AlertTime, parser.getValue(e, KEY_AlertTime));
        map.put(KEY_RouteName, parser.getValue(e, KEY_RouteName));
        map.put(KEY_Notification, parser.getValue(e, KEY_Notification));
        map.put(KEY_StopName, parser.getValue(e, KEY_StopName));
        // adding HashList to ArrayList
        mapList.add(map);
    }

    list = (ListView) findViewById(R.id.list);

    // Getting adapter by passing xml data ArrayList
    adapter = new LazyAdapter(this, mapList);
    list.setAdapter(adapter);

    // Click event for single list row
    list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            int idw = position;
            long logss = id;

// There i want to access the KEY_ID..              

            } catch (Exception e) {
                e.printStackTrace();
                progressDialog.dismiss();
            }

        }
    });
}

2 个答案:

答案 0 :(得分:1)

onItemClick 方法中,您需要从特定的位置中的 mapList 对象中提取 HashMap

HashMap<String, String> map = mapList.get(position);

//and then read values out from 'map' object

答案 1 :(得分:1)

使用此代码获取所选列表项的位置。

ListView lv1 = (ListView) findViewById(R.id.ListView01); 

     lv1.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {

             Object o = lv1.getItemAtPosition(position);

        }
    });