我有一个ViewPager,它包含一个GridView。这是PagerAdaper的instantiateItem
方法:
@Override
public Object instantiateItem(ViewGroup container, int position) {
View page = inflater.inflate(R.layout.emoticon_grid, null);
GridView grid = (GridView) page.findViewById(R.id.emoticon_grid);
grid.setAdapter(new EmoticonListAdapter(context, list, position));
container.addView(page);
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(listener != null) {
Emoticon selectedEmoticon = (Emoticon) arg0.getAdapter().getItem(arg2);
listener.emoticonSelected(selectedEmoticon);
}
}
});
return page;
}
据我所知,其他人在向GridViews添加固有可点击的视图(例如Buttons)时遇到过类似的问题。但我只使用ImageView
public View getView(int position, View convertView, ViewGroup parent) {
Emoticon emoticon = emoticons[position];
if(convertView == null) {
convertView = new ImageView(context);
}
((ImageView) convertView).setImageResource(emoticon.ResourceId);
return convertView;
}
在onItemClickMethod中添加调试日志记录并设置断点后,永远不会调用回调。
答案 0 :(得分:0)
如果目标只是获取通知,请使用OnClickListener
代替OnItemClickListener
。当setOnClickListener
为空时,通过getView
中的convertView
设置监听器。否则,如果您需要在onItemClick
中获得的额外信息,则可以专门设置ImageView
来设置和检索您在专用类中定义的便利成员。