2010-12-05 86 views
1

我的应用程序有一个ListActivity让用户从listFiles()生成的列表中选择一个文件。Android列表文件在文件更改时未刷新

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的onResume()中调用获取新文件列表的相同代码。

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

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

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

在此先感谢您的帮助。

回答

0

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

+1

对不起,问题是当调用“files = f.listFiles()”时,返回的数组是错误的。我相信notifyDataSetChanged()用于将适配器反映到视图。请原谅我,如果我误解,谢谢。 – Mokauno 2010-12-05 18:02:54