Android安卓实现原生文件选择器(浏览器)多选文件功能

本文介绍了如何在Android应用中启用系统原生文件选择器的多选文件功能。通过设置`Intent.EXTRA_ALLOW_MULTIPLE`为true,允许用户长按文件图标进行多选。同时,文章提到解析返回的uri比较复杂,会在另一篇文章中单独讲解。
摘要由CSDN通过智能技术生成

转载请注明出处:codog_main的博客

前言

  有时我们想选择文件,但是又懒得自己去写一个文件浏览器,使用安卓原生的文件选择器或引入第三方库无疑是最佳选择,因为写自己不喜欢的东西真的非常痛苦。
  安卓开启系统原生文件浏览器的教程在网上已经烂大街了,但是很少有文章提及如何进行多选文件。我们在开启原生的文件浏览器时,默认是单选的,即点击文件立即返回uri,想实现多选只需要加入语句:
  intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
  此时就可以多选文件了(长按文件图标)。
  最近,朋友希望我的软件能加入这个功能,于是就找时间研究了一下。按照朋友的说辞,应该是有一个参数可以实现这个功能的,但是我发现网上(或者说是百度引擎),严重缺乏这方面的文章。没办法,我只能试着看看有没有相关的参数,于是在AS中敲入“Intent.MULT”,没想到还真出现了这句“Intent.EXTRA_ALLOW_MULTIPLE”,于是我放网上一查,找到了stackoverflow上的这篇提问,问题也就解决了。
  本篇文章只介绍原生文件浏览器如何实现多选,对于返回uri的解析会放到另一篇文章中进行讲解。
  对原生浏览器uri的解析异常困难,网上流传很广的方法来自国外论坛,但具体是哪个大神研究出来的也不可考究了。我翻遍了国内外论坛、github都找不到让我满意的答案,不同版本的系统返回的uri差异太大了,网上还没有一条万能公式可以解决uri解析问题,我的方法或许并不完善,但总比那些毫无灵魂的复制粘贴文要好多了,这篇文章正在准备中。

代码

  为了让没接触过的人有个总体的了解,也方便不知道如何启动原生文件浏览器的人无需再去找其他文章,下面放出完整代码。其中的getPath函数就是对uri的解析,她可以把uri转化为真实的文件路径,这部分留到另一篇文章中讲解。

MainActivity.java:

public class MainActivity extends AppCompatActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //注册添加文件按钮
        findViewById(R.id.selectButton).setOnClickListener(new View.OnClickListener() {
   
            @Override<
  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值