誰かがここで何がうまくいかないのか指摘してもらえますか:
以下のコードは、/sdcard のディレクトリをループします。ファイルが見つかった場合は、名前などを配列に追加します。ディレクトリが見つかった場合は、立ち寄ってスキャンします。
system.out は、/sdcard 上のすべてのファイルを返します。
アレイ アダプタは、最上位ディレクトリで見つかったものだけを一覧表示します
私のSDカードでは、2つのmp3ファイルが返されることを期待しています。1つは最上位ディレクトリにあり、もう1つはツリー内に埋もれています。system.out 行は両方を見つけます。
fls arraylist が破壊されていると思われます。もしそうなら、これをどのように保存しますか?
前もって感謝します!
public void fill(File f) {
File[]files = f.listFiles();
List<Option>fls = new ArrayList<Option>();
if (files != null) {
for(File ff: files){
if(!ff.isDirectory())
{
/** Only Add MP3's to the list */
String filename=ff.getName();
String ext = filename.substring(
filename.lastIndexOf('.')+1, filename.length());
if(ext.equals("MP3")||ext.equals("mp3")||ext.equals("Mp3")||ext.equals("mP3"))
fls.add(new Option(ff.getName(),"File Size: "+ff.length()/1048576 + "MB",ff.getAbsolutePath()));
System.out.println( ff.getName() );
}
else
fill(ff);
}
}
Collections.sort(fls);
adapter = new FileArrayAdapter(getActivity(),R.layout.folder_view,fls);
this.setListAdapter(adapter);
}