特定の値を持つハッシュマップに配列を追加しています。リストビューのクリック項目から特定の値を持つ配列リストから値を取得できません。
HashMap<String, ArrayList<SeatList>> example = new HashMap<String, ArrayList<SeatList>>();
ArrayList<SeatList> seatlistarray;
ArrayList<Item> items = new ArrayList<Item>();
Item と SeatList は Bean クラスです。
//////////////////////////////
for (int i = 0; i < nodeList.getLength(); i++)
{
Element e = (Element) nodeList.item(i);
Node seat=(Node)seatlist.item(k);
if(seat.hasChildNodes()){
NodeList seats=seat.getChildNodes();
for(int m=0;m<seats.getLength();m++){
Node seatf=(Node)seats.item(m);
if (seatf.getNodeType() == Node.ELEMENT_NODE) {
HashMap hash=new HashMap();
Element eElement = (Element) seatf;
seatlistarray=new ArrayList<SeatList>();
hash.put("ID", eElement.getElementsByTagName("ID").item(0).getTextContent());
hash.put("X_pos", eElement.getElementsByTagName("X_pos").item(0).getTextContent());
hash.put("Y_pos", eElement.getElementsByTagName("Y_pos").item(0).getTextContent());
hash.put("Radius", eElement.getElementsByTagName("Radius").item(0).getTextContent());
seatlistarray.add(new SeatList(eElement.getElementsByTagName("ID").item(0).getTextContent()));
}}}}
example.put(parser.getValue(e, "Hall-ID"), seatlistarray);
items.add(new EntryItem(parser.getValue(e, NODE_NAME), parser.getValue(e, NODE_DESIGNATION),parser.getValue(e, "Hall-ID")));
}
クリックリスナー関数のリストビュー:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!items.get(position).isSection()){
EntryItem item = (EntryItem)items.get(position);
Toast.makeText(this, "You clicked " + item.VenueName , Toast.LENGTH_SHORT).show();
ListIterator<SeatList> testExtracted = example.get(item.HallID).listIterator();
if(testExtracted.hasNext()){
System.out.println("MYUID:"+testExtracted.next().getID());
}
super.onListItemClick(l, v, position, id);
}
}