2012-04-10 55 views
1

嗨,这是我的代码我想访问KEY_ID,我把地图列表放在列表项中点击一个变量.. 请帮我我如何做到这一点。我如何从android listview中获取值?

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(); 
      } 

     } 
    }); 
} 

回答

1

在你onItemClick方法,您需要从MAPLIST对象从特定位置出来取HaspMap

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

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

感谢兄弟我得到了我想要的价值感谢很多男人:) – 2012-04-10 12:24:24

+0

但我已经把最终的maplist放在最前面了。 – 2012-04-10 12:25:15

+0

这并不重要,因为你正在阅读的价值,而不是分配给它 – waqaslam 2012-04-10 12:45:26

1

使用此代码来获取的位置选定的listitem。

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); 

     } 
    }); 
相关问题