2010-11-27 112 views
2

我看到这个问题回答了几次,其中建议使用BaseAdapter中的notifyDataSetChanged()方法。当底层数据发生变化时刷新视图显示

当应用程序不使用任何适配器时,是否有刷新的方法?我有一个简单的应用程序,其中使用了一些具有偏好的活动,以及具有文本视图和按钮的相对布局。目前我不使用任何适配器,如SimpleAdapter或ArrayAdapter或CursorAdapter。在我看来,我必须创建其中的一个才能使用notifyDataSetChanged()?对我来说没有更简单的方法吗?

回答

2

看起来像(我可能错了,但它看起来像)你不赶上这些类的目的 - SimpleAdapter,ArrayAdapterCursorAdapter。他们预计在Activity(或更好 - 在ListActivity之内)内使用ListView。如果你不使用ListView那么这些adapers很可能对你没用。

我假设你的数据以某种方式持续存在(SharedPreferences或文件)。所以如果你开始你的任何活动,那么它只是读取数据来填充视图。在这种情况下,不需要额外的东西。如果您需要为当前可见的Activity重新加载数据,则只需重新读取持久存储中的数据并重新填充视图即可。

+0

我确实使用SharedPreferences。我有一个显示屏幕的活动。我设置了一个闹钟,闹铃响起,服务开始,服务在屏幕顶部的新活动中启动闹钟对话框。用户单击确定使对话框消失。当它消失时,我回到原始屏幕,但原始屏幕保持不动,没有变化。我只需要在原始屏幕上更改一个字符串,因为用户做了什么。我想我应该重新创建整个屏幕? – mlw 2010-11-28 16:22:39

0

如果您的数据正在改变,您需要刷新您的视图,数据如何实际更改?它是在一个单独的线程中,还是,你是否想要定期发生某些事情(轮询RSS提要或其他)?

0

我有类似的问题。我有一个收音机组,每个单选按钮都有一个标签。当屏幕旋转时,我用一个具有相同ID的单选按钮&单选按钮使用不同的布局。我在onCreate()中调用了setContentView():在旋转后,“旧”标签将显示在新布局上(奇怪)。当我将setContentView()移动到onResume时,一切似乎都会更新。感谢Arhimed在上面的回答。

相关问题