Skip to content

2. 过滤器:只显示某种类型的文件

rosuH edited this page Dec 18, 2018 · 5 revisions

1. 先上代码

如果你想实现只显示图片视频音频之类的文件的话,只需要很简单的一部:实现过滤器。

一个过滤器

val aFilter = object : AbstractFileFilter() {
    override fun doFilter(listData: ArrayList<FileItemBeanImpl>): ArrayList<FileItemBeanImpl> {
        return ArrayList(listData.filter { item ->
        // 文件夹或是图片,则被滤出来,然后新建一个 ArrayList 返回给调用者即可
        ((item.isDir) || (item.fileType is RasterImageFileType))
    })
}}

然后你只需要轻轻地加进去,一切就搞定了。

FilePickerManager
    .from(this@SampleActivity)
    .filter(aFilter)
    .forResult(FilePickerManager.REQUEST_CODE)

实际上你可以发挥你的想象力,filter的工作原理就是,把一个纯净的数据集发给你,你搞一些事情后再把它传回去。

所以理论上你可以做一切你想做的事情。(现在还不行,等我更新一波?)

2. 文件类型和甄别器

为了让本框架易于被改装,你实际上可以实现你自己的文件类型,和文件甄别器。你可以去到filetype模块下,看看FileType接口。在目前的版本 0.3.x 还没有把FileBean分离出来,在后面会将之分离,然后你可以自己实现FileBean

Clone this wiki locally