您是否只能将NotifyDataSetChanged用于适配器?

时间:2017-06-02 10:18:35

标签: android database-connection refresh adapter notifydatasetchanged

我想刷新HomeScreenActivity,以便在付款后可以看到余额(适用于NFC / HCE)。

扫描手机后,您将返回HomeScreenActivity。问题是当你回去时,你的余额按钮没有更新,所以你有旧的余额。当您返回登录活动然后再次登录时,您将获得新的余额。

我尝试了很多来解决这个问题,但似乎没有任何效果。也许问题是与天平的通信来自数据库/ API。

我希望有人能解释我或解决问题!!

P.S。我没有平衡适配器!

3 个答案:

答案 0 :(得分:0)

请使用onActivityResult方法获取要刷新金额的行为。并在onActivityResult方法中重置适配器并调用notifyDataSetChanged()。

答案 1 :(得分:0)

你有很多方法可以做到这一点。您可以研究onActivity结果,它将帮助您解决此问题。 EventBus,观察者也是同样的解决方案。

答案 2 :(得分:0)

您可以通过多种方式使数据始终保持最新状态: 我将列出其中一些:

  • 将Realm用于本地DataBase。它有自己的类扩展了recyclerviewAdapter和其他类,以便在表中的数据发生更改时通知您。
  • 使用新的Android Room库,它也可以使用LiveData做同样的事情
  • 使用RxJava订阅您应用中的某些更改。当更改发生时,Rx将向所有订阅者发送新项目。
  • 用户观察员OOP模式

NotifyDataSetChanged做同样的事情。当您希望更改容器数据时,请调用此方法,RecyclerView.Adapter会将所有现有ViewHolders重新绑定到新数据。

这些并非组织通知的所有可能变体。您还可以使用EventBus或一种计时器来刷新指定延迟的数据(这不是最好的)。