所以基本上我想要实现的是在 Android 中打开 Gallery
并让用户选择 multiple images
。现在这个问题 经常 被问到,但我对答案不满意。主要是因为我在我的 IDE 中的 de docs 中发现了一些有趣的东西(我稍后会回来),因此我不想使用自定义适配器,而只想使用普通适配器。
现在我选择一张图片的代码是:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
现在 SO 和其他网站上的人会告诉你你有两个选择:
- 不要使用
ACTION_GET_CONTENT
而是使用 ---ACTION_SEND_MULTIPLE
代替。
这个不行这是根据 sending
文件的文档而不是 retrieving
的文档,这正是它的作用。使用 ACTION_SEND_MULTIPLE 时,我的设备上打开了一个窗口,我必须在其中选择一个应用程序来将我的数据发送到。那不是我想要的,所以我想知道人们是如何通过这个解决方案实现这一目标的。我错过了什么吗?
- 实施
custom Gallery
。现在这是我要考虑的最后一个选项,因为恕我直言,这不是我正在寻找的东西,因为我必须自己设计它,为什么你不能在香草画廊中选择多个图像?
必须有一个选项。现在我发现的有趣的事情是:
我在 ACTION_GET_CONTENT
的文档描述中找到了这个。
如果调用者可以处理多个返回的项目(用户执行多项选择),那么它可以指定 EXTRA_ALLOW_MULTIPLE 来指示这一点。
这很有趣。他们在这里指的是用户可以选择多个项目的用例?
后来他们在文档中说:
您可以使用 EXTRA_ALLOW_MULTIPLE 来允许用户选择多个项目。
所以这很明显,对吧?这就是我需要的。但我接下来的问题是:我可以把这个 EXTRA_ALLOW_MULTIPLE
放在哪里?可悲的是,我在 developers.android 指南 的任何地方都找不到这个,而且它也没有定义为 INTENT 类中的常量。
任何人都可以帮我解决这个问题 EXTRA_ALLOW_MULTIPLE
?
原文由 Dion Segijn 发布,翻译遵循 CC BY-SA 4.0 许可协议
EXTRA_ALLOW_MULTIPLE 选项是通过 Intent.putExtra() 方法在意图上设置的:
你上面的代码应该是这样的:
注意:
EXTRA_ALLOW_MULTIPLE
选项仅适用于 Android API 18 及更高版本。