有人可以指出这里出了什么问题:
下面的代码循环遍历 /sdcard 上的目录。如果它找到一个文件,它会将名称等添加到一个数组中。如果它找到一个目录,它就会进入并扫描它。
system.out 返回 /sdcard 上的所有文件。
数组适配器仅列出它在顶级目录中找到的内容
在我的 sd 卡上,我希望它返回两个 mp3 文件,一个在顶级目录中,一个埋在树中。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);
}