mlhfileselectorlib 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
mlhfileselectorlib 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
mlhfileselectorlib 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 Android
软件类型 开源软件
开源组织
地区 国产
投 递 者 molihuan
适用人群 未知
收录时间 2022-07-06

软件简介

mlhfileselectorlib 提供文件或路径选择,自动申请存储权限,支持安卓4.4 ~ 12,支持Android/data目录访问,支持自定义UI,支持SD卡。

一、如何使用

第1步:添加仓库:

  • 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入
allprojects {
    repositories {
        ...
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}
  • 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入
dependencyResolutionManagement {
    repositories {
        ...
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

第2步:添加远程依赖:

  • 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件中加入远程依赖
  • 最新发布版:Maven Central
dependencies {
    ...
    // 版本请自行选择建议使用最新的
    implementation 'io.github.molihuan:pathselector:版本'
}

第3步:基本用法示范:

//如果没有权限会自动申请权限
PathSelector.build(MainActivity.this, Constants.BUILD_ACTIVITY)//跳转Activity方式
    .requestCode(10011)//请求码
    //toolbar选项
    .setMoreOPtions(new String[]{"选择"},
                    new boolean[]{true},//选择后结束掉Activity结果会给到onActivityResult()
                    new SelectOptions.onToolbarOptionsListener() {
                        @Override
                        public void onOptionClick(View view, String currentPath, List fileBeanList, List callBackData, TabbarFileListAdapter tabbarAdapter, FileListAdapter fileAdapter, List callBackFileBeanList) {
                            //for (String callBackDatum : callBackData) {
                            //Mtools.toast(getBaseContext(),callBackDatum);//也可一在这里拿到选择的结果
                            //}
                        }
                    }
                   )
    .start();//开始构建

第4步:获取返回的数据(也可以在点击回调中获取数据):

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 10011) {
        if(data!=null){
            List pathData = data.getStringArrayListExtra(Constants.CALLBACK_DATA_ARRAYLIST_STRING);//获取数据
            StringBuilder builder = new StringBuilder();
            for (String path : pathData) {
                builder.append(path).append("");
            }
            Mtools.toast(MainActivity.this,builder.toString());
        }
    }
}

demo演示:

系统版本:Android 11

链接:体验App

pathSelectorDemo1.gif

二、更多设置

请看原文档

非常感谢

ZLYang110/FileSelector: Android 文件选择器,指定选择文件夹还是文件,根据后缀名过滤,支持多选 (github.com)

zzy0516alex/FileSelectorRelease: lib (github.com)

getActivity/XXPermissions: Android 权限请求框架,已适配 Android 12 (github.com)

CymChad/BaseRecyclerViewAdapterHelper: BRVAH:Powerful and flexible RecyclerAdapter (github.com)

Blankj/AndroidUtilCode: Android developers should collect the following utils(updating). (github.com)

开源项目以及其依赖项目。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
1 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部