android获取活动中片段的上下文

时间:2016-09-29 08:26:17

标签: java android fragment

我想在活动中获取片段的上下文或实例。我尝试了以下代码: 在片段中:

public static XXFragment instance;

在onCreate()中:

instance = this;

活动:

Context context = XXFrangment.instance;

但它有NullPointerException错误。因为我没有调用fragment的onCreate()。所以如何才能获得Fragment的上下文或实例?希望有人可以帮助我!

2 个答案:

答案 0 :(得分:0)

我认为您在思考Context方面存在一些错误: - )

首先,Fragment在添加到Context之前没有Activity。添加后,Activity本身就是它的上下文,因此无需从Fragment中提取它。只需在this代码中使用Activity: - )

作为旁注,请避免使用包含FragmentsActivities等复杂对象的静态字段。在真实的生产环境中,您永远不会这样做,因为它会导致所谓的内存泄漏,这是软件中的一个大问题。

答案 1 :(得分:0)

使用静态方法进行片段初始化是一种很好的做法。在片段类中实现此方法:

public static YourFragment newInstance() {
     Bundle args = new Bundle();
     YourFragment fragment = new YourFragment();
     fragment.setArguments(args);
     return fragment;
}

如您所见,您可以使用newInstance()方法添加参数。这些参数通常用于将它们作为片段的参数添加。

相关问题