Android 如何检查单击了哪个按钮并在同一活动的onActivityResult中显示结果?
我想做的是,我想在两个不同的图像视图中显示图像,但我现在无法为特定的图像视图设置所选图像我有两个图像视图和两个按钮。。。这是我的密码 这是我的按钮Android 如何检查单击了哪个按钮并在同一活动的onActivityResult中显示结果?,android,android-intent,android-activity,Android,Android Intent,Android Activity,我想做的是,我想在两个不同的图像视图中显示图像,但我现在无法为特定的图像视图设置所选图像我有两个图像视图和两个按钮。。。这是我的密码 这是我的按钮 setImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imagePicker.pickImage(ScrollingActivity.this, "Sel
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:");
}
});
我在这里显示图像,但图像仅在profileimage中显示
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);
}
尝试为映像和句柄提供不同的
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);
}
}
有几种方法可以克服你的问题。
第一:
在布局xml属性中为按钮设置标记,您可以使用以下命令获取这些标记:
button.getTag();
它将在xml视图属性中返回您输入的标记
第二:
您可以向onActivityResult函数添加另一个参数,该参数的值指定单击了哪个按钮 我只是将请求代码设置为每个按钮
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);
}
}
你能详细说明一下吗我还是不明白先生。。。举个例子,你能用你拥有的最新代码更新你的问题吗?在你的第一个if语句中,你应该用first RequestCode检查这是我更新的代码,我正在使用com.mvc.imagepicker.imagepicker这个库,这样我就可以在public void中添加一个参数(活动,字符串值)选中此项他们已经有了发送请求代码的方法,公共静态void pickImage(活动活动,字符串选择器标题,int requestCode,boolean galleryOnly)您可以使用此方法