0

各行がハッシュマップであるリストビューをクリックしてリッスンしようとしています:

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

「{ITEX=2, PK=1}」のようなものを取得
しています。オブジェクト (o) をハッシュマップとしてキャストし、pk のみを取得する必要があります...

何か案が?

ありがとう!

4

1 に答える 1

1

試す:

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"));
     } 
});
于 2013-06-26T15:06:03.903 に答える