最近按照一個視頻寫了一個自定義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;
}
}