【发布时间】:2017-04-07 07:30:40
【问题描述】:
我目前正在开发一个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)?
【问题讨论】:
-
去掉
mContext字段,只需在Fragment类中需要Context的任何地方使用getActivity()。不要尝试在构造函数中传递一个。 -
您不需要将上下文传递给片段……只需执行
file -> new project并使用默认活动/片段创建一个项目,然后看看谷歌做了什么。这很简单,会教你“正确的方法”。 ;) 永远不要在片段中使用默认空构造函数以外的构造函数。 (否则你以后会后悔的)。
标签: android