所以基本上我想要实现的是在Android中打开Gallery,让用户 Select multiple images.这个问题已经被问了frequently次,但我对答案不满意.主要是因为我在IDE中的de文档中发现了一些有趣的东西(稍后我会继续讨论),因此我不想使用自定义适配器,只想使用普通适配器.

现在,我 Select 一张图片的代码是:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);

现在,SO和其他网站上的人们会告诉你,你有两个 Select :

1)不要用ACTION_GET_CONTENT,而要用ACTION_SEND_MULTIPLE.
这个坏了.这是根据文档的sending个文件,而不是retrieving个,这正是它所做的.当使用action_send_Multiple时,我在设备上打开了一个窗口,我必须在其中 Select 要向其发送数据的应用程序.这不是我想要的,所以我想知道人们是如何通过这个解决方案实现这一点的.我错过什么了吗?

2) 实施custom Gallery.现在这是我最后的 Select ,我会考虑,因为IHHO不是我正在寻找的,因为我必须自己风格,为什么你不能 Select 多个图像在香草 gallery ?

对于这一点,必须有一个 Select ..现在我发现的有趣的事情是这样的:
I found this in the docs description of 100.

如果调用方可以处理多个返回的项目(用户执行

这很有趣.这里他们指的是用户可以 Select 多个项目的用例?

后来他们在文件中说:

您可以使用EXTRA_ALLOW_MULTIPLE允许用户 Select 多个

这很明显,对吧?这就是我需要的.但我的问题是:我可以把这个EXTRA_ALLOW_MULTIPLE放在哪里?可悲的是,我在developers.android guide中找不到这个no where,在INTENT类中也没有定义为常量.

有人能帮我解决这个问题吗?

推荐答案

通过intent在intent上设置EXTRA_ALLOW_MULTIPLE选项.putExtra()方法:

intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

上面的代码应该如下所示:

Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);

注:EXTRA_ALLOW_MULTIPLE选项仅适用于Android API 18及更高版本.

Android相关问答推荐

致命信号6(SIGABRT)MAUI应用程序在android net发布时崩溃.8、使用强制屏幕方向和并发GC

Android编写动画在发布版本中崩溃

显示本地房间数据库中未保存的项目的动态列表

为什么Ionic-checkbox不总是刷新Android上的视图?

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

在内部创建匿名对象的繁忙循环调用函数会产生开销吗?

Jetpack Compose X.dp 性能问题?

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

使用 settings.gradle 文件将 Firebase 依赖项添加到 Android 项目

CoroutineScope 与挂起函数

Android Studio 复制类 kotlin

如何在 Jetpack Compose 中向图像视图添加对角色带?

在 Jetpack Compose 中使用 ViewModel 实现 startActivity 的最佳实践

Jetpack Compose UI - 在 AlertDialog 中单击时按钮宽度会发生变化

Unity:Android 上随机接近零的 FPS 下降(提供了很多线索)

如何在 Jetpack compose 中将 Canvas 中的文本居中?

为什么我不能在屏幕外拿任何物体

如果我在网络请求中指定它们是否与判断网络功能相关

更新应用程序是否会取消对应用程序特定文件的权限?

AndroidX Room 生成类错误:类是公共的,应在名为 class.java 的文件中声明