Android应用程序列表结构,并从全局类中查找上下文
我有两个问题 假设我正在创建一个具有三种屏幕类型的android应用程序: 首先,在列表中显示信息的一系列3个选项卡。信息的类型决定了它显示在哪个选项卡中 第二,屏幕上有关于所选列表项的详细信息 第三,一个屏幕,您可以在其中添加一个列表项,它将填充相应的列表Android应用程序列表结构,并从全局类中查找上下文,android,json,android-fragments,Android,Json,Android Fragments,我有两个问题 假设我正在创建一个具有三种屏幕类型的android应用程序: 首先,在列表中显示信息的一系列3个选项卡。信息的类型决定了它显示在哪个选项卡中 第二,屏幕上有关于所选列表项的详细信息 第三,一个屏幕,您可以在其中添加一个列表项,它将填充相应的列表 这个项目的良好结构是什么?现在我拥有的是一个全局类(扩展应用程序),它跟踪列表并从JSON文件导入它们,上面三个屏幕中的每个屏幕都有一个活动(和附带的片段),每个选项卡都有一个单独的片段 然而,我发现在Globals类中导入JSON文
这个项目的良好结构是什么?现在我拥有的是一个全局类(扩展应用程序),它跟踪列表并从JSON文件导入它们,上面三个屏幕中的每个屏幕都有一个活动(和附带的片段),每个选项卡都有一个单独的片段 然而,我发现在Globals类中导入JSON文件需要上下文,我不知道如何获取上下文。在我继续之前,这是一个好的结构吗 如果是这样,我如何在全局类中获取上下文
我在Android Studio 3工作。
应用程序
是一个上下文
。也就是说,只要在需要上下文的任何地方使用当前实例
这个。(无需调用getApplicationContext()
)
但是,支持的上下文
尚未在应用程序的构造函数中正确初始化和附加。应用程序实际上是一个ContextWrapper
,它是一个上下文
子类,将所有方法调用委托给一个上下文
字段,该字段在启动时由系统创建和设置。这意味着您不能在构造函数中调用任何上下文
方法,因为在那里它仍然是空的
与活动
和服务
类一样,应用程序
通常不应该有任何明确定义的构造函数。需要进行的任何初始化都可以在其onCreate()方法中执行。那时,上下文
字段将已设置。“现在我拥有的是一个全局类(扩展应用程序)…在全局类中,需要上下文,我不知道如何获取”–应用程序
是一个上下文
。“在我进一步讨论之前,这是一个好的结构吗?”——这是基于观点的,因此离题了。一些用户喜欢使用应用程序
作为“全局”数据存储。其他人则不然。“应用程序是一个上下文。”当我从构造函数类调用getApplicationContext()时,会得到一个nullpointerexception。我应该以另一种方式还是在另一个点上这样做?首先,应用程序
子类不应该有任何显式定义的构造函数。在onCreate()
中进行初始化。其次,不需要调用getApplicationContext()
。只要使用这个
。太好了,谢谢。这似乎解决了我的问题!您想添加它作为答案吗?