ListView:添加项目然后使用后退按钮返回刷新列表

时间:2012-09-24 13:23:07

标签: android

我的Android应用程序有问题。

我有一个ListView,此ListView从数据库中获取数据,然后通过SimpleCursorAdapter绑定它。

现在我有一个向数据库添加新条目的按钮,然后启动一个新的intent并创建一个新项目并将其添加到数据库中。添加后,我转到新页面。

现在我想要以下内容:

当我到达新页面并按下后退按钮时,我不想转发到创建新项目页面,我想跳过它并直接返回ListView。 另一个问题是ListView应该显示新条目。它应该以某种方式刷新。

如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

  1. 当您创建新的Intent以将项目添加到数据库时,请确保设置Intent.FLAG_ACTIVITY_NO_HISTORY以便新的Intent不会保留在历史记录堆栈中 例如:myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)

  2. 当基础数据的适配器发生更改并且您希望更改反映在ListView中时,请调用适配器notifyDataSetChanged()方法(在您的情况下,单击后退按钮) 例如:myAdapter.notifyDataSetChanged()

答案 1 :(得分:0)

首先,使用startActivityForResult()启动您的活动(向数据库添加新元素),因此当该活动完成时(例如,通过按后退按钮),将调用onActivityResult()回调调用活动(列表中的活动)。在此方法中,再次运行填充列表的查询,使用生成的游标创建新的SimpleCursorAdapter,并通过setAdapter()将其提供给列表。