如何在主详细信息流活动

时间:2018-05-20 20:22:59

标签: java android

我正在使用主详细信息流活动,我ListFragmentDetailFragment Fragments我有一个SQLiteHelper的实例,我帮助我对我的SQLite执行操作。

我的问题是DetailFragment我有Button可以删除项目(我有我的产品的ID,所以我可以删除它),但我的问题是,因为我'当我从Master detail flow移除产品时使用DetailFragment我必须执行类似adapter.notifyDataSetChanged()之类的操作,或者我的适配器以及RecyclerView的所有内容,如何从我的DetailFragment获取AdapterListFragment的引用?

注意:在我MainActivity上我除了创建Fragment

之外什么都没有

我的问题是:

  1. 在我的MainActivity上我除了创建Fragment之外什么都没有,而我的MainActivity实现了从Interface调用的Adapter替换当前的Fragment,可以吗?
  2. Fragment newInstance() SQLiteHelper我有Activity的{​​{1}},我可以将它放在我的RecyclerView上,以便我可以使用同一个对象吗?
  3. 问题是我需要更新我DetailFragment的{​​{1}},并且我没有关于RecyclerView的任何内容,所以我不能做adapter.notifyDataSetChanged()之类的事情或类似的东西,我只能删除当前项目,如何连接DetailFragment以刷新RecyclerView

1 个答案:

答案 0 :(得分:0)

  

在我的MainActivity上我没有任何东西,除了Fragment的创建,我的MainActivity实现了一个从Adapter调用的接口来替换当前的Fragment,是吗?

当然,但您还希望保留对主分段的引用,至少将删除操作委托给它以响应详细信息片段中的操作。

  

在这两个片段中,我有一个我的SQLiteHelper的newInstance(),我可以把它放在我的Activity上,这样我就可以使用同一个对象吗?

不确定。通常,您将SQLite访问对象设置为某种单身。通过一个Activity访问它是一种方法。

  

问题是我需要从我的DetailFragment更新RecyclerView并且在它上面我没有任何关于RecyclerView的东西,所以我不能做像adapter.notifyDataSetChanged()这样的东西,我只能删除当前item,如何连接我的DetailFragment以刷新RecyclerView?

请查看Communicating with Other Fragments上的官方文档。

您可以通过OnDeleteListener使用DetailFragment调用正在删除的项目的索引或ID来调整您的用例策略。然后,活动将委派给MasterFragment,让它知道项目已被删除,以便它可以在其适配器上调用notifyItemRemoved

希望有所帮助!