如何检查单击哪个按钮并在同一活动中的onActivityResult中显示结果?

时间:2017-08-13 10:37:43

标签: android android-intent android-activity

  

我想要做的是我想在两个不同的imageview中显示图像,但我现在无法为特定图像视图设置所选图像我有两个图像视图和两个按钮...这是我的代码

这是我的按钮

 setImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imagePicker.pickImage(ScrollingActivity.this, "Select your image:");
        }
    });

    setImage2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imagePicker.pickImage(ScrollingActivity.this, "Select your image:");

        }
    });

此处我正在显示图片,但图片只显示在个人资料图片

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    bitmap = imagePicker.getImageFromResult(this, requestCode, resultCode, data);

    // Now image is not displaying 
    if (requestCode == imageSelect) {
        if (bitmap != null) {
            profileImage.setImageBitmap(bitmap);
            setImage.setVisibility(View.GONE);
        }
    } else if (requestCode == imageSelect2) {
        if (bitmap != null) {

            profileImage2.setImageBitmap(bitmap);
            // setImage2.setVisibility(View.GONE);
        }
    }


    InputStream is = imagePicker.getInputStreamFromResult(this, requestCode, resultCode, data);
    if (is != null) {
        Toast.makeText(this, "Got input stream!", Toast.LENGTH_SHORT).show();
        try {
            is.close();
        } catch (IOException ex) {
            // ignore
        }
    } else {
        Toast.makeText(this, "Failed to get input stream!", Toast.LENGTH_SHORT).show();
    }
    super.onActivityResult(requestCode, resultCode, data);
}

3 个答案:

答案 0 :(得分:3)

尝试根据requestCode

中的内容为图片和句柄提供不同的onActivityResult()

在您imagePicker.pickImage

中再添加一个参数

而不是:

public void pickImage(Activity activity, String value)

更改为:

public void pickImage(Activity activity, String value, int requestCode)

为每张图片提供不同的请求代码。因此,根据请求代码,您可以在onActivityResult()

中执行操作

在您的onActivityResult()中,您应该检查第一张图片的请求代码

if (bitmap != null  ) {
    if(requestCode == imageSelect1) {

        profileImage.setImageBitmap(bitmap);
    } else {
        profileImage2.setImageBitmap(bitmap);
    }

}

答案 1 :(得分:1)

有几种方法可以解决您的问题。 第一: 在布局xml属性中为按钮设置标记,您可以使用以下内容获取这些标记:

button.getTag();

它将在xml视图属性中返回您输入的标记。

第二: 你可以在你的onActivityResult函数中添加另一个参数,它的值指定了哪个按钮被点击了。

答案 2 :(得分:0)

我只是将请求代码设置为每个按钮

setImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imagePicker.pickImage(ScrollingActivity.this, 1);
        }
    });

    setImage2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imagePicker.pickImage(ScrollingActivity.this, 2);

        }
    });

只需在onActivity中使用“If else”

  if (requestCode == 1) {
        if (bitmap != null) {
            profileImage.setImageBitmap(bitmap);
            setImage.setVisibility(View.GONE);
        }
    } else if (requestCode == 2) {
        if (bitmap != null) {

            profileImage2.setImageBitmap(bitmap);
            // setImage2.setVisibility(View.GONE);
        }
    }