關於listview.setAdapter(adapter)程式閃退、崩潰問題的原因
阿新 • • 發佈:2018-11-04
最近按照一個視訊寫了一個自定義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; } }