android-活动之间共享光标
作者:互联网
我认为以下情况很常见,但我不知道实现的方式:
我们有三个活动和一个数据库.我们要求用户输入要在数据库中搜索的内容.该查询应该没有任何结果,可能会得到一个结果.
>如果一无所获,您只需通知用户.
>如果只有一个,则以正确的视图将其显示在新活动中.
>如果有很多,则将它们显示在列表中,以允许用户选择正确的列表,然后将其传递给活动,该活动仅在一个结果的情况下显示数据.
问题是,为了知道结果数,您需要在第一个活动中进行查询(并获取游标).而且,如果您得到一个以上的结果,则需要将数据(通过光标?)发送到列表活动中.在list活动中再次执行查询不正确,对不对?
我知道您可以使用内容提供者来共享游标,但是由于活动是来自同一应用程序,并且数据是私有的(外部无用),所以看不到让其他任何人都可以使用它的意义.
我在这里读到,您可以创建可打包的游标并将其打包发送,但是我不确定这是否是正确的用法.
关于如何解决这个问题的任何想法?
提前致谢.
解决方法:
选项#1:由搜索活动执行的查询只是SELECT _ID FROM….在“无”情况下,它显示消息.在“一个”的情况下,它将匹配的_ID传递给detail活动,以通过查询获取该行的所有必需列来查看匹配.在“很多”情况下,它将搜索词传递给列表活动,该活动运行完整查询(包括显示列表所需的所有列).
选项2:将搜索活动和列表活动合并为一个活动.基本上,将“搜索并选择要查看的项目”视为“ UI事务”,然后在一个活动中全部完成.搜索活动将进行足以在“很多”情况下填充列表的查询,并通过ViewFlipper等在AlertDialog或主要活动本身中显示列表.在“无”的情况下,它将显示该消息.在“一个”情况下-或当用户点击列表中的一个条目时-它会将内容传递给明细活动以查看该项目.
选项#3:将搜索查询移至列表活动-搜索活动通过附加功能将搜索信息传递至列表活动,该附加功能在onCreate()中执行rawQuery().列表活动处理“无”和“许多”情况.在“一个”情况下,它仅对明细活动和finish()调用startActivity(),因此当用户按下BACK时控件返回到搜索活动.
在其他条件相同的情况下,我可能会选择选项2.
标签:android-activity,cursor,android 来源: https://codeday.me/bug/20191209/2095395.html