我已经实现了嵌套片段。子片段包含BaseAdapter。当我切换(替换)子片段时,我得到Nullpointer异常。 代码:
public MyAdapter(final Context context,
final List<CusomObject> CusomObjectList) {
mInflater = LayoutInflater.from(context);
this.CusomObjectList = CusomObjectList;
}
我在这行中遇到错误 - mInflater = LayoutInflater.from(context);
我在Fragment的getActivity()
构造函数中传递了MyAdapter
。
代码:
adapter = new MyAdapter(getActivity(), customList);
listView.setAdapter(adapter);
答案 0 :(得分:5)
我在Fragment的MyAdapter构造函数中传递了getActivity()。
这是问题所在。
调用Fragment
构造函数时 - 仍未启动对Activity
的引用。
相反 - 您应该根据Fragment Activity
方法中的onCreate()
上下文进行任何对象创建或初始化。
一般情况下,根本不建议覆盖Fragment
构造函数,就像你不重写Activity
构造函数一样,但只是覆盖它的生命周期回调。< / p>
更多信息 - http://developer.android.com/guide/components/fragments.html
答案 1 :(得分:0)
使用另一个变量。
Context mContext;
public MyAdapter(final Context context,
final List<CusomObject> CusomObjectList) {
this.mContext = context;
mInflater = LayoutInflater.from(mContext);
this.CusomObjectList = CusomObjectList;
}