0

我正在开发一个 android 项目,我正在尝试从 SD 卡中获取文件和目录的列表。除了文件名输出一堆废话之外,它似乎更不工作,我不明白为什么。

下面是我用来获取文件列表的代码。

公共 ArrayList getFileDirectoryListing() { ArrayList fileAndDirectories = new ArrayList();

final String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state))
{
    File[] files = Environment.getExternalStorageDirectory().listFiles();
    for (int i = 0; i < files.length; i++)
    {
        FileDirectoryDetails fileDirectoryDetails = new FileDirectoryDetails();
        fileDirectoryDetails.path = files[i].getName();
        if (files[i].isDirectory())
        {
            fileDirectoryDetails.fileOrDirectory = FileOrDirectory.Directory;
        }
        else
        {
            fileDirectoryDetails.fileOrDirectory = FileOrDirectory.File;
        }
        fileAndDirectories.add(fileDirectoryDetails);
    }
}

return fileAndDirectories;

}

下面是我用来设置列表适配器的代码

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    listView = getListView();

    ArrayList<FileDirectoryDetails> filesAndDirectories = getFileDirectoryListing();
    fileDirectoryDetailsArrayAdapter = new 
            ArrayAdapter<FileDirectoryDetails>(this, android.R.layout.simple_list_item_1, filesAndDirectories); 

    setListAdapter(fileDirectoryDetailsArrayAdapter);
}

下面是我在列表视图中返回的屏幕截图,而不是实际文件名。

返回的文件列表截图

4

1 回答 1

1

确保toString()FileDirectoryDetails返回的有意义的详细信息中覆盖。目前您正在使用默认值toString()

或者只是用路径字符串而不是整个数组填充你的数组FileDirectoryDetails

或者,覆盖getView()适配器将文本设置TextViewdetails.path

于 2013-11-05T13:40:20.150 回答