在新 Activity 中维护父子句柄
Maintain Parent-Child handle in new Activity
使用Android.Studio;
为了让您快速上手,我正在设计一个日历,其功能类似于日期选择器,只需轻扫一下即可查看该日期的事件列表。这些事件是从我们的站点获取的,并存储在本地数据库中。 CalendarFragment setOnDateChangeListener 更新 ScheduleFragment 事件列表。 CalendarFragment、ScheduleFragment 是 SectionsPagerAdapter 的子项,后者是 HandiCRM 的子项。 HandiCRM有一个可变的DBHandler数据库;它维护对本地数据库的访问,包括必要表之间的 DROP、CREATE、INSERT、UPDATE 和 SELECT 命令。因为这些活动都同时存在,所以我已经能够将 public Parent handles 传递给每个 child 以允许 "Parent.Parent.database"
[tl;dr] 每个事件 setOnClickListener 都会为 ShowEvent.class 创建一个新的 Intent,它应该填充存储在数据库中的信息。我似乎收到的问题是,当在 ShowEvent 中创建 DBHandler 时,当尝试 select 来自表的任何信息时,DBHandler returns 结果为零。此外,因为它正在创建一个 Intent 来显示此 Activity,我无法传递父对象,因为 Activity 不可序列化(数据库也不可序列化)。有可能我可以添加大量 EXTRAS 来显示此页面所需的信息,但它不允许在其中进行任何修改。所以,我需要的是一种不同的方式来弹出 Activity window 以允许我保留面向对象的父->子句柄,或者是一种将句柄传递给子句柄的方法在 EXTRAS 之外。
我已经研究了一段时间,即使有相同性质的请求,回复总是相同的"use putExtra()",而不是解决实际问题。
据我了解您的应用程序,我认为处理您的问题的最佳方法是使您的 DBHandler 静态化。
static DBHandler database;
现在,在任何子活动中,您应该能够访问此变量:
HandiCRM.database
Defining a variable as static allows you to access the variable from
any activity within the package.
因此,您可以在子 activity 本身中执行查询。这样就不需要传递值了。
使用Android.Studio;
为了让您快速上手,我正在设计一个日历,其功能类似于日期选择器,只需轻扫一下即可查看该日期的事件列表。这些事件是从我们的站点获取的,并存储在本地数据库中。 CalendarFragment setOnDateChangeListener 更新 ScheduleFragment 事件列表。 CalendarFragment、ScheduleFragment 是 SectionsPagerAdapter 的子项,后者是 HandiCRM 的子项。 HandiCRM有一个可变的DBHandler数据库;它维护对本地数据库的访问,包括必要表之间的 DROP、CREATE、INSERT、UPDATE 和 SELECT 命令。因为这些活动都同时存在,所以我已经能够将 public Parent handles 传递给每个 child 以允许 "Parent.Parent.database"
[tl;dr] 每个事件 setOnClickListener 都会为 ShowEvent.class 创建一个新的 Intent,它应该填充存储在数据库中的信息。我似乎收到的问题是,当在 ShowEvent 中创建 DBHandler 时,当尝试 select 来自表的任何信息时,DBHandler returns 结果为零。此外,因为它正在创建一个 Intent 来显示此 Activity,我无法传递父对象,因为 Activity 不可序列化(数据库也不可序列化)。有可能我可以添加大量 EXTRAS 来显示此页面所需的信息,但它不允许在其中进行任何修改。所以,我需要的是一种不同的方式来弹出 Activity window 以允许我保留面向对象的父->子句柄,或者是一种将句柄传递给子句柄的方法在 EXTRAS 之外。
我已经研究了一段时间,即使有相同性质的请求,回复总是相同的"use putExtra()",而不是解决实际问题。
据我了解您的应用程序,我认为处理您的问题的最佳方法是使您的 DBHandler 静态化。
static DBHandler database;
现在,在任何子活动中,您应该能够访问此变量:
HandiCRM.database
Defining a variable as static allows you to access the variable from any activity within the package.
因此,您可以在子 activity 本身中执行查询。这样就不需要传递值了。