【问题标题】:selecting image from gallery for the second time does no work and show a black screen第二次从图库中选择图像不起作用并显示黑屏
【发布时间】:2016-06-25 10:58:44
【问题描述】:

1) 从图库中选择图片,图片视图将随图片更新;

2)第一次尝试,确实有效,我拍的照片显示正常。

3)我再次启动图库并选择图片,应用程序进入空白屏幕,没有任何反应。

我一直在记录我的跟踪记录,尽管已经调用了 startActivityForResult(),但 onActivityResult 甚至没有被调用。

以下是相关代码的一些sn-ps:

private ImageView groupImage;
private Uri selectedImage;
groupImage = (ImageView) rootView.findViewById(R.id.groupLogo);
groupImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(intent, RESULT_LOAD_IMG);
        }
    });

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
try{
    if(requestCode == RESULT_LOAD_IMG && resultCode == Activity.RESULT_OK && data!=null){
         selectedImage = data.getData();

        groupImage.setImageBitmap(MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage));

    }
}catch (Exception e){
    e.getStackTrace();
}
}

【问题讨论】:

  • 有时我收到这个 java.lang.RuntimeException: Performing stop of activity that not resume
  • 其实铁人没有生成异常,因为应用程序没有获得 try 块
  • 你应该将你的超级调用移动到onActivityResult 的末尾,并且只有在你自己不使用结果时才调用它。

标签: android performance gallery image-gallery photo-gallery


【解决方案1】:

这行有问题:

groupImage = (ImageView) rootView.findViewById(R.id.groupLogo);

在onActivityResult 函数中,您覆盖了对groupImage 的先前引用,因此onClickListener 上不会分配给您的ImageView

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多