2010-12-05 19 views
1

my appに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()); 
    } 

ユーザーがエントリをクリックするとアクティビティが開始され、ユーザーがファイルを編集できます。 ユーザーが編集アクティビティを終了すると、編集したコンテンツが新しい名前の新しいファイルに保存され、最初に選択されたファイルが削除されます。

次に、最初のアクティビティのonResume()で新しいファイルリストを取得するコードが再度呼び出されます。

コードは正常に実行されますが、関数listFiles()は、バッファがリフレッシュされなかった場合と同様に古代リストを返します。

奇妙なことは、アンドロイドデバイスの向きを変更すると正しいファイルリストが返され、onResume()が再び呼び出されるということです。

また、同じような動作を得るために、別の方法でアクティビティを再起動しようとしました。

ご協力いただきありがとうございます。

答えて

0

notifyDataSetChanged()を試してみてください。

+1

"files = f.listFiles()"が呼び出されたときに問題が残っています。返される配列は間違っています。私はnotifyDataSetChanged()はビューにアダプタを反映するために使用されると信じています。私が誤解した場合は、私にごめんなさい、ありがとう。 – Mokauno

関連する問題