1. 程式人生 > >關於listview.setAdapter(adapter)程式閃退、崩潰問題的原因

關於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;
        }
    }