android - 是否可以允许用户在存储访问框架中选择多个文件..?

标签 android provider

点击按钮后,我从提供者处获取内容

 Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        i.addCategory(Intent.CATEGORY_OPENABLE);
        i.setType("image/*");
        startActivityForResult(i, REQUESTCODE);

现在我想允许用户进行多项选择,这可能吗?

最佳答案

不知道您是否解决了您的问题,但这是我使用存储访问框架实现多项选择的方式

    Intent filePickerIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    filePickerIntent.setType("*/*");
    filePickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    startActivityForResult(filePickerIntent, REQUEST_CODE);

在Activity Result方法中,只需要迭代Intent参数中的ClipData

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if(requestCode == REQUEST_CODE)
    {
        if(data != null)
        {
            ClipData clipData = data.getClipData();
            for(int i = 0; i < clipData.getItemCount(); i++)
            {
                ClipData.Item path = clipData.getItemAt(i);
                Log.i("Path:",path.toString());
            }
        }
    }
}

要在存储访问框架 Activity UI 中选择多个文件,只需按住任意项目即可激活多选。

关于android - 是否可以允许用户在存储访问框架中选择多个文件..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30773100/

相关文章:

android - Android TextView 最多 9000 个字符?

android - 如何在带有 php mysql 的 android 中的一个 Activity 中使用两个微调器

java - 序列化和反序列化 JSON 中的对象

android - 滚动时列表颜色变黑

Flutter:如何在子小部件的构建上下文之外的函数中访问 'provider' 值?

linq - 创建 Linq->HQL 提供程序

javascript - 创建可以在不同应用程序中显示路线/行程的链接

.net - DB2 .NET提供者建议

Flutter 使用 ListView.Builder : how can i change background color of only one item on all items with i selected it

java - 使用 Tomcat 8.0 配置 JPA(Hibernate)