【发布时间】:2013-06-12 00:46:47
【问题描述】:
我有两个活动。
活动 A:包含一个列表视图和一个“编辑”按钮。 Activity B:包含一个表单和一个保存按钮。
当您启动应用程序时,它会打开 Activity A。按“编辑”按钮打开 Activity B。填写表格,按保存并将此数据存储在 SQlite 3 数据库中,然后终止 Activity B。这调用活动 A 的 onResume 方法。
在这个 onResume() 方法中,我试图刷新 listView 以显示刚刚保存到其中的新数据。
目前看起来是这样的;
@Override
protected void onResume() {
super.onResume();
arrayAdapter.notifyDataSetChanged();
lv.invalidate();
System.out.println("onResume must have been called ");
}
为什么我的列表视图从不刷新?如果我完全杀死活动并重新打开它,它只会显示新数据
【问题讨论】:
-
你能多贴一点代码吗?很难从这段代码中看出什么问题。
-
剩下的只是从 SQlite 数据库中填充 OnCreate 中的列表视图,并且工作正常。 Invalidate() 在 textviews 上工作。
-
如何填充阵列适配器?你给它一个列表还是数组?您必须确保支持适配器的数据结构得到更新(也许它还没有 sqllite 数据库更改)。完全重新启动活动可能会针对数据库执行选择,否则。
-
我相信你可能是对的。我可能只是在刷新适配器,但它没有从 SQlite DB 重新读取以刷新为适配器提供数据的列表。我试试这个
-
成功了,谢谢。我见过其他人可能也在做同样的事情,所以如果你把它写下来作为答案,我会给你绿色检查:)
标签: android android-listview android-activity