如何使用片段的getActivity()方法传递上下文?

时间:2017-04-07 07:30:41

标签: android

我目前正在使用Android应用,它突然给了我这些错误

避免片段中的非默认构造函数:使用默认构造函数加上Fragment #setArguments(Bundle)

此片段应提供默认构造函数(不带参数的公共构造函数)

这是代码:

public AFragment newInstance(int sectionNumber, Context context)
{
    AFragment fragment = new AFragment(context);
    Bundle args = new Bundle();
    args.putLong(ARG_SECTION_NUMBER, sectionNumber);
    fragment.setArguments(args);
    return fragment;
}

public AFragment(Context context)
{
    mContext = context;
}

如何使用片段的getActivity()方法传递上下文(mContext = context)?

2 个答案:

答案 0 :(得分:2)

您永远不需要将Context传递给Fragment。

您可以从newInstance参数中删除

无论您在Fragment中使用该Context字段,都可以使用getActivity()替换它。

如果您确实想要使用某个字段,则必须在onAttach中指定该字段并记住在片段停止或从任何活动中分离时取消分配

答案 1 :(得分:0)

片段是孩子或活动的一部分。因此,只要您想要片段中的上下文,就可以使用getActivity()作为上下文。