使 getContentResolver() 在扩展 Fragment 类的类中工作

新手上路,请多包涵

我的想法是使用两个片段,第一个片段显示联系人列表,第二个片段显示在上部片段中选择的联系人的详细信息。

由于上下文问题,我用来扩展 Fragment 类的类不允许我使用 getContentResolver() 方法。现在,我正在尝试在扩展 Fragment 类的同一类中获取联系人,并使用它来显示列表视图及其详细信息。在经历了一些较旧的解决方案之后,我找到了创建函数并将 Context 作为参数传递给它的方法,但问题是我不必从任何其他扩展 Activity 的类调用它。我想从扩展 Fragment 的同一个类中做到这一点。

我应该怎么做?

任何帮助将不胜感激。

原文由 Syed Danish Ali 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

尝试将此代码添加到以前的活动中:

 // a static variable to get a reference of our application context
public static Context contextOfApplication;
public static Context getContextOfApplication()
{
return contextOfApplication;
}

在同一活动中,在您的 onCreate 方法中添加以下行:

  contextOfApplication = getApplicationContext();

在您的片段中,您可以使用以下方式访问它:

 Context applicationContext = YourActivity.getContextOfApplication();
applicationContext.getContentResolver();

原文由 Ahmed Abidi 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 getter 获取应用程序上下文不起作用。等价于上面的答案是

getActivity().getApplicationContext().getContentResolver().

原文由 user5415112 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题