关于listview.setAdapter(adapter)程序闪退、崩溃问题的原因

最近按照一个视频写了一个自定义Adapter,但是运行的时候会在使用istview.setAdapter(adapter)时APP闪退,学习视频链接:

https://www.imooc.com/video/7264

然后搜索了一下发现有人提到去掉context == null就可以了,我去掉之后发现真的是这个原因,但是不明白为什么要去掉


    public static ViewHolder get(Context context,View convertView,ViewGroup parent,int layoutId,int position) {
//        if (context == null){
            return  new ViewHolder(context,parent,layoutId,position);
//        }else {
//            ViewHolder holder = (ViewHolder) convertView.getTag();
//            holder.mPosition = position;
//            return holder;
//        }
    }
就是把上面的有注释的代码注释掉就可以了,欢迎各位大佬解答为什么去掉就可以了,因为学习视频里面是不需要去掉的

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

找到原因了,是看视频不认真,应该是判断convertView == null,convertView是View,context是上下文,搞错了,引以为戒

    public static ViewHolder get(Context context,View convertView,ViewGroup parent,int layoutId,int position) {
        if (convertView == null){
            return  new ViewHolder(context,parent,layoutId,position);
        }else {
            ViewHolder holder = (ViewHolder) convertView.getTag();
            holder.mPosition = position;
            return holder;
        }
    }
 

猜你喜欢

转载自blog.csdn.net/qq_22079023/article/details/83412898