1

私のアプリには、listFiles() によって生成されたリストからユーザーがファイルを選択できるようにする ListActivity があります。

 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() は、バッファが更新されていない場合のように、古いリストを返します。

奇妙なことに、Android デバイスで向きを変えると正しいファイル リストが返され、onResume() が再度呼び出されます。

また、同じ動作を得るためにさまざまな方法でアクティビティを再開しようとしましたが、成功しませんでした。

助けてくれてありがとう。

4

1 に答える 1

0

notifyDataSetChanged()リストをリロードしてみてください。

于 2010-12-05T17:46:52.147 に答える