android – 如何在ListView中显示SD卡上的文件?

我想创建一个按钮,单击该按钮将转到一个类,该类使用ListView显示SD卡中的所有媒体文件.

从列表中选择后,它将返回选择的主文件名.如果返回的文件是图像文件,它将显示ImageView中,如果返回的文件是音频文件,它只会显示一个图标.

解决方法

在程序中添加一个方法GetFiles().调用它来获取ArrayList<>所有文件.然后,您可以使用它来填充列表视图.您需要提供String参数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?

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...