如何在viewpager中更新适配器项

时间:2016-02-29 15:42:45

标签: android android-recyclerview recycler-adapter

我有double totalPrice = 0.0; for (int i = 0; i < bookArray.length; i++) { //can't use foreach because of use of parallel arrays bookArray & quantityArray Book b = bookArray[i]; double price = b.getPrice() * quantityArray[i]; totalPrice += price; String bookStr = String.format(" %s, %s %s", b.getTitle(), b.getIsbn(), DecimalFormat.getCurrencyInstance().format(price)); JOptionPane.showMessageDialog(null, bookStr); } String totalStr = String.format("Total Charge: %s", DecimalFormat.getCurrencyInstance().format(totalPrice))); JOptionPane.showMessageDialog(null, totalStr); 有3个页面,它有一个viewPager(),每个页面都有三个不同的适配器,我希望用户点击它在数据库中添加的第一页中的适配器项目第二个适配器从同一个数据库获取其数组列表,但它在应用程序重新启动后显示在第二个页面的适配器中,因此问题是如何在不重新启动的情况下更新第二个页面的适配器。

1 个答案:

答案 0 :(得分:0)

常规ListView可以使用CursorAdapter,它提供了您需要的一些功能。唉,现有的CursorAdapter类没有扩展RecyclerView.Adapter

最快的解决方案是在GitHub上使用RecyclerViewCursorAdapter

然后它会像这样工作:

  • 更新您的数据库
  • 获取对第二页片段的引用。在getItem()中创建片段时,可以存储此引用。请注意,根据ViewPager已创建/未创建的页面,您的片段可能为空。
  • 在您的片段上调用一个方法,该方法将创建一个由适配器使用的新Cursor(使用与之前相同的查询)。当适配器收到新的Cursor时,它将更新RecyclerView