我正在开发一个应用程序,它基本上有一个主要片段和几个次要片段。每个辅助片段当前都有一个自定义的listview,其中每个次要片段中的每一行都有一个图像、一个文本字符串和一个按钮,将其标记为最爱。因此,当用户将任何行标记为收藏时,收藏夹行应立即以相同的自定义listview格式显示在主片段中(包含图像、文本字符串和按钮)。
该应用程序已准备就绪并已工作(减去“添加并填充收藏夹功能”)
每个自定义列表视图的行如下所示:
主片段用于在用户从其他几个辅助片段中收藏了特定的listview行之后立即显示所有listview行(按顺序排列)。
应用程序的结构如下:
在阅读了类似的主题之后,我明白使用SQL将是存储和检索大量数据的正确方法。
我参考了这个教程- 使用内容提供程序从SQLite数据库异步填充listview,它对理解一些东西有很大的帮助。但是,我发现很难对自定义列表视图(包括每行中的图像)实现这一点,并将所有收藏夹项收集到单独的主片段中。
参考上述链接和上述需求,如何在应用程序中实现此功能?
发布于 2014-06-15 09:34:11
你考虑过使用观察者模式吗?基本上,你只需将你的主要片段注册为观察者,就可以听到其他片段中添加的偏袒者的声音。
将片段1、2、3.n注册在一个中心组件中,比如父活动reg = ((ObserverRegistryDispatcher) Fragment.getActivity()).registerAsSubject(Fragment.this, EventId.ADD_FAVOURITE);
然后您就可以使用它来分派事件。
reg.notifyObservers(EventId.ADD_FAVOURITE, favouriteEntity);
您基本上为您的MainFragment做了等价的事情,但是将它注册为一个观察者,并在适当的回调方法中获取事件。
((ObserverRegistryDispatcher) Fragment.getActivity()).registerAsObserver(MainFragment.this.getObserverImpl(), EventId.ADD_FAVOURITE);
public void onEventOccurred(EventId eventId, Object... arguments) { if (EventId.ADD_FAVOURITE.equals.(eventId)) { // add entity in favourite list }
https://stackoverflow.com/questions/24227130
复制相似问题