我使用GridView创建了一个图库。它已经完成,但现在我正在尝试在适配器的getView函数中添加一些与“setOnItemClickListener”的交互。这是我的适配器的代码:
public class ImageAdapter extends BaseAdapter {
//Basic standard adapter functions
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
} else {
imageView = (ImageView) convertView;
}
GridView mygrid = (GridView) imageView.findViewById(R.id.gallery);
mygrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int position, long l) {
//Do something
}
});
该代码为我编译,但是当我执行OnClick加载此视图时,它会崩溃。如果我评论setOnItemClickListener调用,一切都适合我,所以我猜我有错误。
任何人都可以帮助我吗?
非常感谢你。
答案 0 :(得分:2)
GridView mygrid = (GridView) imageView.findViewById(R.id.gallery);
mygrid可能为null。在setOnItemClickListener
方法中调用getView
是非常糟糕的,你应该在construstor中或在适配器之外调用它。