Reputation: 1113
i am trying to listen to click on listview which each row is hashmap:
lvItem = (ListView)getView().findViewById(R.id.listWork);
ArrayList<HashMap<String, String>> mylistData = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
int[] columnID = new int[] {R.id.tvPK, R.id.tvText };
map.put("PK", "1");
map.put("ITEM", "2");
mylistData.add(map);
SimpleAdapter arrayadapter = new SimpleAdapter(getActivity(), mylistData, R.layout.row_hidden_id, new String[] {"PK", "ITEM"}, columnID);
lvItem.setAdapter(arrayadapter);
lvItem.setTextFilterEnabled(true);
lvItem.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int p, long id) {
Object o = lvItem.getItemAtPosition(p);
ErrorMsg("ID:" + o.toString());
} });
i am getting something like "{ITEX=2, PK=1}"
i need to cast the object (o) as hashmap and get only the pk...
any idea?
Thanks!
Upvotes: 0
Views: 1909
Reputation: 23269
Try:
lvItem.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int p, long id) {
HashMap<String,String> map = (HashMap) lvItem.getItemAtPosition(p);
ErrorMsg("ID:" + map.get("PK"));
}
});
Upvotes: 1