将URI返回其他类

问题描述 投票:0回答:2

所以我想要这个类,它从画廊中选择图像并将数据保存在URI中,以将其传递给我的imageadapter.class,然后将其显示在Gridview上。我该怎么做?

谢谢,代码:

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()){
        case R.id.addimage:
            Toast.makeText(getApplicationContext(), "Image added", Toast.LENGTH_SHORT).show();
            openGallery();
            break;
        case R.id.loggout:
            Toast.makeText(getApplicationContext(), "logged out", Toast.LENGTH_SHORT).show();
            Intent i = new Intent(nav.this, MainActivity.class);
            startActivity(i);
    }

    return super.onOptionsItemSelected(item);
}
private void openGallery(){
    Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    startActivityForResult(gallery, IMAGE_PICK);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK && requestCode == IMAGE_PICK){
            imageuri = data.getData();
            System.out.println("success");
        }
}

和适配器的图像数组:

public static Integer[] images ={
            R.drawable.test, R.drawable.test2, R.drawable.test3, R.drawable.test4, R.drawable.test5, R.drawable.test6, R.drawable.test7, R.drawable.test8
    };
java android android-studio
2个回答
0
投票

如果您要发送结果,可以在成功检索数据后执行类似的操作,

if(resultCode == RESULT_OK && requestCode == IMAGE_PICK){
            Uri imageuri = data.getData();
            processImageData(imageuri);

            System.out.println("success");
  }

0
投票

在您的适配器上创建setter方法,如

public void setImages(Integer[] images){
 this.images = images;
 notifyDataSetChanged();
}

并且在onActivityResult()方法中,但是您通过创建图像数组来处理uri并调用适配器变量+ setter的方法

if(resultCode == RESULT_OK && requestCode == IMAGE_PICK){
  //handling and create array list of uri
 Integer[] imagesArrayResult = {//......//}
  imageadapter.setImages(imagesArrayResult);
}
© www.soinside.com 2019 - 2024. All rights reserved.