为了账号安全,请及时绑定邮箱和手机立即绑定

为何我按照老师的方法用inflater.inflate,会报空指针

我按照教程尝试编写自定义Adapter,继承BaseAdapter,在重写getView方法时,使用了
convertView = inflater.inflate(R.layout.lv_test_list,null); 然而在运行时就报错了,显示 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行代码。请问我的问题出在哪里?我该如何修改? 

http://img1.sycdn.imooc.com//57e0fadc0001343e10130597.jpg


我的代码如下:

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

正在回答

4 回答

解决了,是构造方法的问题,应该是inflater = LayoutInflater.from(context);

0 回复 有任何疑惑可以回复我~

一般都是xml文件写错了,检查一下你的xml文件看看。

0 回复 有任何疑惑可以回复我~

构造方法里面inflate=inflater.from(context);

1 回复 有任何疑惑可以回复我~
#1

qq_人杂添堵_0

6666
2016-11-08 回复 有任何疑惑可以回复我~
#2

qq_人杂添堵_0 回复 qq_人杂添堵_0

666
2016-11-08 回复 有任何疑惑可以回复我~

有两种可能,要么你的inflater没有初始化,要么你的布局id有问题

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android必学-BaseAdapter的使用与优化
  • 参与学习       42593    人
  • 解答问题       93    个

了解数据适配器的使用方法,写出高效、文艺的BaseAdapter

进入课程

为何我按照老师的方法用inflater.inflate,会报空指针

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信