NullPointerException LayoutInflater.from(context) - Fragment Android 空指针异常:LayoutInflater.from(context) - Fragment Android

3

我已经实现了嵌套片段。子片段包含BaseAdapter。当我切换(替换)子片段时,我会遇到空指针异常。

代码:

public MyAdapter(final Context context,
            final List<CusomObject> CusomObjectList) {
        mInflater = LayoutInflater.from(context);
        this.CusomObjectList = CusomObjectList;     
    }

这一行代码出现了错误 - mInflater = LayoutInflater.from(context);

我在Fragment中的MyAdapter构造函数中传递了getActivity().

代码如下:

adapter = new MyAdapter(getActivity(), customList);
listView.setAdapter(adapter);

尝试将final Context context更改为final Activity activity,并使用mInflater = activity.getLayoutInflater() - ρяσѕρєя K
2个回答

5

我从Fragment中的MyAdapter构造函数传递了getActivity()。

这正是问题所在。

当调用Fragment构造函数时,对Activity的引用仍未初始化。

相反,您应该在Fragment的onCreate()方法中执行依赖于Activity上下文的任何对象创建或初始化。

一般来说,不建议覆盖Fragment构造函数,就像您不会覆盖Activity构造函数一样,而只会覆盖其生命周期回调。

更多信息请参见- http://developer.android.com/guide/components/fragments.html


@Slk:如果我的答案解决了你的问题 - 你可以接受这个答案。 - Tal Kanel
谢谢,您的回答解决了我的问题。我已经接受了您的答案。 - Slk

0

使用另一个变量。

Context mContext;

public MyAdapter(final Context context,
        final List<CusomObject> CusomObjectList) {
    this.mContext = context;
    mInflater = LayoutInflater.from(mContext);
    this.CusomObjectList = CusomObjectList;     
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接