【发布时间】:2014-02-20 23:40:22
【问题描述】:
首先让我展示一下我的应用的基本结构:
MainActivity
| |
------------- ------------
| |
SearchFragment WatchListFragment
| |
SearchListViewFragment WatchListListViewFragment
| |
SearchAdapter WatchListAdapter
现在我遇到了这样一种情况,在 SearchAdapter 中处理了对列表视图中的按钮的单击,这需要将被单击列表项的 ID 传递给 WatchListFragment,以便我可以将该项目添加到的 ListView WatchListListViewFragment...
将东西直接从一个片段传递到另一个片段似乎是不好的做法,所以我想我会尝试使用接口,从 SearchAdapter -> SearchListViewFragment -> SearchFragment -> MainActivity -> WatchListFragment 传递 ID。不太清楚我在做什么,我最终得到了四个看起来几乎相同的界面。这对我来说似乎不正确。所以现在我正在考虑尝试一个由所有相关类实现的单一接口。但这感觉也不太对劲……
是否有一些我应该使用的标准方法? “一个接口为所有”是个好主意吗?我尝试阅读接口以获得一个想法,虽然我在简化的教科书示例中得到了这个想法,但这个案例完全是另一回事......
【问题讨论】:
-
我最终使用了一个完全不同的解决方案。起初我打算让我的 WatchListAdapter 扩展 ArrayAdapter,但我意识到如果让它们都扩展 SimpleCursorAdapter 的公共子类,我可以重用 SearchAdapter(扩展 SimpleCursorAdapter)中的几乎所有代码。因此,在 SearchAdapter 中单击按钮会导致数据库向我的数据库中的 watchlist_table 添加一个条目。 WatchListAdapter 订阅我的数据库中的自定义 onChange-listener 并在 watchlist_table 中执行插入/更新/删除时收到通知。希望可以帮助别人!
标签: android android-fragments interface