android - 从 android 图库中选择多张图片

所以基本上我想要实现的是在 Android 中打开 Gallery 并让用户选择 multiple images。现在这个问题被问频繁,但我对答案不满意。主要是因为我在我的 IDE 中的 de docs 中发现了一些有趣的东西(我稍后会回来),因此我不想使用自定义适配器,而只想使用 Vanilla 适配器。

现在我选择一张图片的代码是:

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

现在 SO 和其他网站上的人们会告诉您,您有 2 个选择:

1) 不要使用 ACTION_GET_CONTENT 而是使用 ACTION_SEND_MULTIPLE
这个不行。这是根据 sending 文件而不是 retrieving 的文档,这正是它的作用。使用 ACTION_SEND_MULTIPLE 时,我的设备上打开了一个窗口,我必须选择一个应用程序来发送我的数据。这不是我想要的,所以我想知道人们是如何通过这个解决方案实现这一目标的。我错过了什么吗?

2) 实现一个自定义图库。现在这是我将考虑的最后一个选择,因为恕我直言,这不是我要寻找的,因为我必须自己设计它,为什么你不能在 Vanilla 画廊中选择多个图像?

必须有一个选项。现在我发现有趣的是:
我在 ACTION_GET_CONTENT 的文档描述中找到了这个。

If the caller can handle multiple returned items (the user performing multiple selection), then it can specify EXTRA_ALLOW_MULTIPLE to indicate this.

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

后来他们在文档中说:

You may use EXTRA_ALLOW_MULTIPLE to allow the user to select multiple items.

所以这很明显吧?这就是我需要的。但我的以下问题是:我可以把这个 EXTRA_ALLOW_MULTIPLE 放在哪里?可悲的是,我在 developers.android 指南 中找不到这个,而且它也没有在 INTENT 类中定义为常量。

谁能帮我解决这个EXTRA_ALLOW_MULTIPLE

最佳答案

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

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 及更高版本中可用。

https://stackoverflow.com/questions/19585815/

相关文章:

android - 了解 keystore 、证书和别名

android - 如何在 Android 中更改代理设置(尤其是在 Chrome 中)

android - 如何查看 Google Play 服务版本?

android - 如何在 Android 中模拟触摸事件?

android - 将 largeHeap 设置为 true 有什么好处?

android - 在 Android 中通过 Canvas 创建一个空位图并进行绘图

android - 在非 Activity 类中获取上下文

Android 5.1.1 及更高版本 - getRunningAppProcesses() 仅返回

android - post方法到底是做什么的?

android - 以编程方式获取设备的 Android API 级别?