java - 多个图像上传代码不起作用。我缺少什么?

标签 java android

我正在开发一个 Android 应用程序,其中用户将被要求从他的手机图库上传 2 张图像。

我的 Activity 有一个“上传”按钮 + 2 个 ImageView,用于在继续下一个 Activity 之前显示所选图像。

一切似乎都工作正常,但两个 ImageView 都只填充了我选择的一张图像,我不知道为什么。

我在谷歌和这个网站上搜索发现了很多类似的问题,但没有一个对我有帮助。由于我不是专家,我可能会错过一些愚蠢而简单的东西,但我现在很迷失并决定创建一个帖子。

这是我的 Activity 中的 Java 代码:

public class UploadActivity extends AppCompatActivity {

    //Button and ImageViews have the same names for layout IDs
    Button uploadBtn;
    ImageView imgOne;
    ImageView imgTwo;

    public static final int PICK_IMAGE = 100;

    public static Uri imgUri1;
    public static Uri imgUri2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_upload);

        uploadBtn = (Button)findViewById(R.id.uploadBtn);

        imgOne = (ImageView)findViewById(R.id.imgOne);
        imgTwo = (ImageView)findViewById(R.id.imgTwo);

        uploadBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openGallery();
            }
        });
    }

    private void openGallery() {
        Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        gallery.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
        startActivityForResult(gallery, PICK_IMAGE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
            imgUri1 = data.getData();
            imgOne.setImageURI(imgUri1);
            imgUri2 = data.getData();
            imgTwo.setImageURI(imgUri2);
        }
    }
}

此代码有效,但仅显示两个 ImageView 的一张选定图像。

看起来它正在跳过第二个图像并将其 ImageView 再次分配给第一个图像。

最佳答案

您的问题是这段代码:

imgUri1 = data.getData();
imgOne.setImageURI(imgUri1);
imgUri2 = data.getData();
imgTwo.setImageURI(imgUri2);

您将 imgUri1 AND imgUri2 设置为 data.getData()。所以 imgUri1imgUri2 完全相同。因此,您为两个 imageView 设置相同的 Uri

关于java - 多个图像上传代码不起作用。我缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56043648/

相关文章:

android - 无法解析 Android 资源字符串

java - NoSuchMethodError Request.setTag

Java IO : CharsetDecoder. 解码()在 Linux 上无法正常工作

java - 使用可比较或比较器接口(interface)使用字符串 s1 的顺序对字符串 s2 进行排序

java - Java 异常处理的最佳实践

java - 使用容量作为参数的 stringBuffer 插入方法

android - 带有Gradle的Android Jacoco测试带有compileDebugSources和compileDebugTestSources的dependsOn顺序

java - 如何在 firestore 中点击 URL 时在 firebase 存储上上传 2 张图像

java - 使用Android Studio从assets文件夹将html文件加载到android上的webview

android - 使线性布局像 ListView 中的列表项一样可选择(Android)