适配器内的Android setOnItemClickListener不会崩溃

时间:2015-02-26 21:32:24

标签: android android-fragments android-adapter

我使用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调用,一切都适合我,所以我猜我有错误。

任何人都可以帮助我吗?

非常感谢你。

1 个答案:

答案 0 :(得分:2)

GridView mygrid = (GridView) imageView.findViewById(R.id.gallery);

mygrid可能为null。在setOnItemClickListener方法中调用getView是非常糟糕的,你应该在construstor中或在适配器之外调用它。