在片段中使用上下文
我如何获得片段中的上下文?
我需要使用我的数据库的构造函数在上下文中,但getApplicationContext()
和FragmentClass.this
不工作,所以我能做什么?
数据库构造函数
public Database(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
您可以使用getActivity()
,它返回与片段关联的活动。
该活动是一个上下文(因为Activity扩展上下文)。
要做到上面的答案,你可以重写片段的onAttach
方法:
public static class DummySectionFragment extends Fragment{
...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
DBHelper = new DatabaseHelper(activity);
}
}
始终使用getActivity()方法获取所连接活动的上下文,但始终记住一件事情:片段稍微不稳定,并且getActivity
有时会返回null,因此,在获取上下文之前,始终检查片段的isAdded()方法getActivity()
。
上一篇: Using context in a fragment
下一篇: Need help,Screen didn't turn on after I change Activity's theme