為何我按照老師的方法用inflater.inflate,會(huì)報(bào)空指針
我按照教程嘗試編寫自定義Adapter,繼承BaseAdapter,在重寫getView方法時(shí),使用了
convertView?=?inflater.inflate(R.layout.lv_test_list,null);?然而在運(yùn)行時(shí)就報(bào)錯(cuò)了,顯示?java.lang.NullPointerException:?Attempt?to?invoke?virtual?method?'android.view.View?android.view.LayoutInflater.inflate(int,?android.view.ViewGroup)'?on?a?null?object?reference。
但是,視頻教程就是這么寫的~~如下圖所示,第70行代碼。請(qǐng)問我的問題出在哪里?我該如何修改??
我的代碼如下:
public?class?ListAdapter?extends?BaseAdapter?{ ? ????private?List<ListAdapterItem>?items; ????LayoutInflater?inflater; ????public?ListAdapter(Context?context,List<ListAdapterItem>?source){ ????????items?=?source; ????????inflater.from(context); ????} ? @Override ????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{ ????????ViewHolder?vh; ????????if(convertView?==?null){ ????????????convertView?=?inflater.inflate(R.layout.lv_test_list,null); ????????????ImageView?img??=?(ImageView)?convertView.findViewById(R.id.img_icon); ????????????TextView?tv_title?=?(TextView)?convertView.findViewById(R.id.tv_title); ????????????TextView?tv_content?=?(TextView)?convertView.findViewById(R.id.tv_content); ????????????vh?=?new?ViewHolder(); ????????????vh.content?=?tv_content; ????????????vh.title?=?tv_title; ????????????vh.img?=?img; ????????????convertView.setTag(vh); ????????} ????????else{ ????????????vh?=?(ViewHolder)?convertView.getTag(); ????????} ????????ListAdapterItem?item?=?items.get(position); ????????vh.content.setText(item.str_content); ????????vh.title.setText(item.str_title); ????????vh.img.setImageResource(item.int_img); ????????return?convertView; ????} ? ????class??ViewHolder?{ ????????public?ImageView?img; ????????public?TextView?title; ????????public?TextView?content; ????} }
2016-10-10
解決了,是構(gòu)造方法的問題,應(yīng)該是inflater = LayoutInflater.from(context);
2016-10-10
一般都是xml文件寫錯(cuò)了,檢查一下你的xml文件看看。
2016-10-08
構(gòu)造方法里面inflate=inflater.from(context);
2016-10-03
有兩種可能,要么你的inflater沒有初始化,要么你的布局id有問題