2010-12-05 85 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