【问题标题】:Call a method when back button pressed按下后退按钮时调用方法
【发布时间】:2012-12-26 16:25:24
【问题描述】:


我的应用程序中有一个列表。在另一个活动中,用户从数据库中删除一行并返回到主活动(我在这里使用 finish())。当它返回时,已从数据库中删除的行仍在列表中。如果用户按下刷新按钮,它就会消失。
如何自动刷新?

【问题讨论】:

    标签: android database list refresh


    【解决方案1】:

    覆盖你原来的 Activity(当用户按下返回时显示的那个)onResume(),所以它看起来像:

    @Override
    protected void onResume()
    {
      refreshListMethod();
      super.onResume();
    }
    

    refreshListMethod(); 是您选择刷新列表的任何方法,因为您说:

    用户按下刷新按钮,它消失了。

    因此,将这种方法变成一种方法,以便您可以在任何需要的地方使用它。

    【讨论】:

    • 你太棒了! :) 谢谢!
    • 这比我的方法好很多吗,@A--C?我在不同的活动中都做过这两种方式,但不确定是否有“最佳实践”。当我刷新时,我通常会重新创建活动,除了可以使用notifyDataSetChanged() 的列表。只是想知道我是否需要重新考虑我的做事方式
    • 我会说onResume() 是更好的做法;它绝对更干净。因此,它应该更快,并且遵守 Activity 生命周期约定。当您想更改 Activity 的 UI 时,您无需重新创建它,而是继续使用 Activity。
    • 有道理,我认为您需要重新创建以刷新 UI,但我想您不需要重新创建变量之类的东西。谢谢
    【解决方案2】:

    重新创建Activity 当您单击列表项时,您可以在ListActivity 上调用finish(),然后在删除新的Activity 中的行后使用Intent 重新创建Intent

    【讨论】:

    • 首先感谢您的回答。我已经尝试过了,但我认为它会使应用程序变得更加润滑。 A---C 的答案是我认为最清晰、最简单的方法。再次感谢您。
    • 不客气,我很高兴你能成功。我通常这样做,但也许它确实让它变慢了。我不确定是否会有很大的不同,但也许我错了
    猜你喜欢
    • 2016-10-27
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多