设置意图返回的最大项目数

Edi*_*sar 4 android android-intent android-image android-contentprovider

我有一个意图,可用于允许用户在像厨房这样的图像应用程序(或用户设备中存在的任何其他图像)中选择一些图像。

我希望用户只选择10 张图像,但我不知道如何在意图上设置此最大值。我试图看看我是否可以使用 ClipData,但 clipdata 没有设置最大项目数的方法。

ClipboardManager manager = getSystemService(Context.CLIPBOARD_SERVICE)
ClipData clipdata = manager.getPrimaryClip();// in short whether i get 
or i create a clipdata, there are no methods to set maximum number of
items to be held into that clip
Run Code Online (Sandbox Code Playgroud)

这是我的意图。

    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, SELECT_PHOTO); 
Run Code Online (Sandbox Code Playgroud)

如何限制用户只能选择 10 张照片?

ELI*_*ITE 5

使用ClipData检查返回的项目计数

ClipData mClipData = data.getClipData();
// here you can check how many images user has selected.
if(mClipData.getItemCount() >= 10) {
    // do needful here
    Log.e("APP_TAG", "Greater than THRESHOLD.");
    // show some error
    return;
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅问题。


Kes*_*sha 5

你可以试试这个库:https : //github.com/sangcomz/FishBun?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=2785

它允许您设置可以共享的最大图像数。您还可以通过设置 actionBar 和 statusBar 的颜色来自定义 PickerActivity。也可以在达到指定限制时设置您的自定义消息。

希望这会帮助你。