我想创建一个按钮,单击该按钮将转到一个类,该类使用 ListView
显示 SD 卡中的所有媒体文件。
从列表中选择后,它将选择的文件名返回给主类。如果返回的文件是图像文件,它将显示在 ImageView
中,如果返回的文件是音频文件,它将只显示一个图标。
最佳答案
添加方法 GetFiles()
到你的程序。调用它以获得 ArrayList<>
所有的文件。然后您可以使用它来填充您的 listview
.您需要提供字符串参数 DirectoryPath
.
函数:
public ArrayList<String> GetFiles(String DirectoryPath) {
ArrayList<String> MyFiles = new ArrayList<String>();
File f = new File(DirectoryPath);
f.mkdirs();
File[] files = f.listFiles();
if (files.length == 0)
return null;
else {
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
}
return MyFiles;
}
使用示例:
@Override
public void onCreate() {
// Other Code
ListView lv;
ArrayList<String> FilesInFolder = GetFiles("/sdcard/somefolder");
lv = (ListView)findViewById(R.id.filelist);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, FilesInFolder));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Clicking on items
}
});
}
确保外部存储可读: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
根据名称/扩展名过滤文件: How to acces sdcard and return and array with files off a specific format?
关于android - 如何在ListView中显示SD卡上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800981/