[英]Sharing cursor between Activities
我认为以下场景很常见,但我无法想出实现它的方法:
我们有三个活动和一个数据库。 我们要求用户输入数据库中的搜索。 查询应该是none,one或者结果。
问题是,为了知道结果的数量,您需要在第一个活动中进行查询(并获取光标)。 如果您得到多个结果,您需要将数据( 传递光标? )发送到列表活动。 在列表活动中再次执行查询可能不对,对吧?
我知道您可以通过使用内容提供商来共享游标,但由于活动来自同一个应用程序且数据是私有的(外部没用),因此不要让其他任何人都可以使用它。
我在这里读到你可以创建一个可分割的光标并将其发送到捆绑包中,但我不确定这是否是正确的用法。
有关如何解决这个问题的任何想法?
提前致谢。
选项#1:搜索活动执行的查询只是SELECT _ID FROM
...在“none”情况下,它显示消息。 在“one”情况下,它将匹配的_ID
传递给detail活动,以通过查询获取该行的所有所需列来查看匹配。 在“很多”情况下,它将搜索项传递给列表活动,列表活动运行完整查询(包括显示列表所需的所有列)。
选项#2:将搜索活动和列表活动合并为一个活动。 基本上,将“搜索并选择要查看的项目”视为“UI事务”,并在一个活动中完成所有操作。 搜索活动会做足够填充在“多”的情况下列表中查询,显示在列表AlertDialog
或通过主要活动本身ViewFlipper
什么的。 在“无”情况下,它显示消息。 在“一”情况下 - 或者当用户点击列表中的条目时 - 它将内容传递给详细活动以查看该项目。
选项#3:将搜索查询移动到列表活动 - 您的搜索活动通过extras将搜索信息传递给列表活动,extras执行onCreate()
中的rawQuery()
onCreate()
。 列表活动处理“无”和“很多”情况。 在“one”情况下,它只调用detail活动的startActivity()
和finish()
因此当用户按下BACK时,控制将返回搜索活动。
在其他条件相同的情况下,我可能选择#2选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.