我想在活动中获取片段的上下文或实例。我尝试了以下代码: 在片段中:
public static XXFragment instance;
在onCreate()中:
instance = this;
活动:
Context context = XXFrangment.instance;
但它有NullPointerException错误。因为我没有调用fragment的onCreate()。所以如何才能获得Fragment的上下文或实例?希望有人可以帮助我!
答案 0 :(得分:0)
我认为您在思考Context
方面存在一些错误: - )
首先,Fragment
在添加到Context
之前没有Activity
。添加后,Activity
本身就是它的上下文,因此无需从Fragment
中提取它。只需在this
代码中使用Activity
: - )
作为旁注,请避免使用包含Fragments
和Activities
等复杂对象的静态字段。在真实的生产环境中,您永远不会这样做,因为它会导致所谓的内存泄漏,这是软件中的一个大问题。
答案 1 :(得分:0)
使用静态方法进行片段初始化是一种很好的做法。在片段类中实现此方法:
public static YourFragment newInstance() {
Bundle args = new Bundle();
YourFragment fragment = new YourFragment();
fragment.setArguments(args);
return fragment;
}
如您所见,您可以使用newInstance()
方法添加参数。这些参数通常用于将它们作为片段的参数添加。