【问题标题】:How can I get value in OnItemClickListener from adapter?如何从适配器获取 OnItemClickListener 的价值?
【发布时间】:2014-05-23 20:05:02
【问题描述】:

请帮助从 OnItemClickListener 获取“KEY_ID”的值

适配器代码:

public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}

活动代码:

ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

map.put(MainActivity.KEY_ID,MainActivity.parser.getValue(e,MainActivity.KEY_ID));
songsList.add(map);

adapter = new LazyAdapter(getActivity(), songsList);
list.setAdapter(adapter);

st.setOnItemClickListener(new OnItemClickListener() {

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

String sss = ???????????????????????????????????? value of KEY_ID
}
});

请帮忙。 感谢您提供的任何帮助

【问题讨论】:

    标签: android android-adapter onitemclicklistener


    【解决方案1】:

    尝试将您的 onItemClick 更改为:

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
    
            String sss = songsList.get(position).get(MainActivity.KEY_ID);
        }
    

    【讨论】:

      【解决方案2】:

      您可以使用适配器,它更可靠..因为它对应于 UI 上当前显示的内容:

         @Override
         public void onItemClick(AdapterView<?> parent, View view,
             int position, long id) {
             String value = ((Map<String, String>)adapter.getItem(position)).get(MainActivity.KEY_ID);
      
           // 'adapter' can be either the field variable of the one you instantiated above OR by accessing the parameter 'parent' like this: parent.getAdapter()
      
          }
      

      【讨论】:

      • 确实,这比我最初的答案更可靠。感谢您指出。
      • 不工作。错误 - “Map 无法解析为类型”
      • 你导入了吗? java.util.Map... 或执行您已经使用的那个: HashMap
      • ArrayList> songList = new ArrayList>();
      • 导入 java.util.Map; Map 更通用,通常我们指的是 Map(接口)而不是实现的 HashMap。但是在你的代码中你可以使用你喜欢的那个,两者都可以。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多