1

我的应用程序有一个 ListActivity,让用户从 listFiles() 生成的列表中选择一个文件。

 File f=null;
 File[] files = null;
 f= new File(BOOKPATH);
    files = f.listFiles();
    item = new ArrayList<String>();

    for(int i=files.length-1; i >= 0; i--){
      File file = files[i];
      item.add(file.getName());
    }

它工作得很好,当用户点击一个条目时,就会启动一个活动,然后用户可以编辑文件。当用户退出编辑Activity时,编辑后的内容会被保存在一个新文件中,并以新的名字命名,并删除第一个选中的文件。

然后在第一个 Activity 的 onResume() 上再次调用获取新文件列表的相同代码。

代码执行得很好,但函数 listFiles() 返回古老的列表,就像没有刷新缓冲区一样。

奇怪的是,当我在 android 设备上更改方向时,会返回正确的文件列表,并再次调用 onResume()。

我还尝试通过不同的方式重新启动活动以获得相同的行为,但没有成功。

提前感谢您的帮助。

4

1 回答 1

0

尝试notifyDataSetChanged()重新加载列表。

于 2010-12-05T17:46:52.147 回答