作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在您将问题标记为重复之前请阅读问题...
所以我正在尝试使用 Intent 从图库中选择多张图片。当我选择多于 1 张图片时,它工作正常,当我只选择 1 张图片时,它会生成此错误。我寻找了每个 NullPointer 异常问题,但没有成功。
FATAL EXCEPTION: main
Process: com.blackhat.applocker, PID: 1892
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:10227 flg=0x1 }} to activity {com.blackhat.applocker/com.blackhat.applocker.ProtactGallery}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3839)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3882)
at android.app.ActivityThread.access$1300(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1519)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5637)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:114)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference
at com.blackhat.applocker.ProtactGallery.onActivityResult(ProtactGallery.java:63)
at android.app.Activity.dispatchActivityResult(Activity.java:6302)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3835)
这是我用于 Intent 的代码
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"), 2);
这是我的图像 ActivityResult 方法内容
if(requestCode == 2){
if(data.getClipData().getItemCount() == 1){
Toast.makeText(this, "Only 1", Toast.LENGTH_SHORT).show();
}else{
for(int i=0;i<data.getClipData().getItemCount();i++){
path.add(data.getClipData().getItemAt(i).getUri());
Log.d("RjList",path.get(i).toString());
Random rn=new Random();
if(copyFileFromUri(this,data.getClipData().getItemAt(i).getUri(),String.valueOf(rn.nextInt(500)))){
Toast.makeText(this, "Done", Toast.LENGTH_SHORT).show();
}
}
}
}
它适用于多张图片。
为什么当我只选择 1 张图像时它不起作用??任何建议都会被应用....
最佳答案
我相信 ClipData
只有在有多个 Uris 要发回时才会返回。当只有一个时,您可以使用 getData
获取它。你可以做这样的事情来处理:
List<Uri> uris = new ArrayList<>();
ClipData cd = data.getClipData();
if ( cd == null ) {
Uri uri = data.getData();
uris.add(uri);
}
else {
for (int i = 0; i < cd.getItemCount(); i++) {
ClipData.Item item = cd.getItemAt(i);
Uri uri = item.getUri();
uris.add(uri);
}
}
关于android - getClipdata().GetItemCount() 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471647/
基本上,我需要选择多个图像。当我选择多个图像时,我的代码工作正常,但当我选择单个图像时它不起作用。 我正在使用此代码来选择图像 public void getPhotoFromGallery(){
在您将问题标记为重复之前请阅读问题... 所以我正在尝试使用 Intent 从图库中选择多张图片。当我选择多于 1 张图片时,它工作正常,当我只选择 1 张图片时,它会生成此错误。我寻找了每个 Nul
我正在设计拖放操作,但我不知道如何访问我的数据。有没有人使用过 Clip Data 对象?这是我的代码: 开始拖放: ClipData dragData= ClipData.newPlainText(
我是一名优秀的程序员,十分优秀!