Java 我有两个imageview,但当我调用一个imageview来设置图像时,它会将它们设置为相同的图像
我有两张背靠背的照片。当我在第一个图像视图中设置图像时,它也会在下一个图像视图中设置相同的图像;当我从一个图像视图中更改图像时,它也会从另一个图像视图中更改该图像。如何修复它。请帮帮我。先谢谢你。 相关代码为:Java 我有两个imageview,但当我调用一个imageview来设置图像时,它会将它们设置为相同的图像,java,android,xml,Java,Android,Xml,我有两张背靠背的照片。当我在第一个图像视图中设置图像时,它也会在下一个图像视图中设置相同的图像;当我从一个图像视图中更改图像时,它也会从另一个图像视图中更改该图像。如何修复它。请帮帮我。先谢谢你。 相关代码为: ` ImageView cpic,psymbol; private static final int PICK_IMAGE=100; private static final int SET_IMAGE=100; Uri imageUri,simage
` ImageView cpic,psymbol;
private static final int PICK_IMAGE=100;
private static final int SET_IMAGE=100;
Uri imageUri,simageUri;
cpic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openGallery();
}
});
psymbol.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openGallary();
}
});
}
private void openGallery() {
Intent Gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(Gallery,PICK_IMAGE);
}
private void openGallary(){
Intent Gallary = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(Gallary,SET_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK && requestCode==PICK_IMAGE){
imageUri=data.getData();
InputStream imageinput = null;
try {
imageinput=getContentResolver().openInputStream(imageUri);
cpic.setImageBitmap(BitmapFactory.decodeStream(imageinput));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
if (resultCode==RESULT_OK && requestCode==SET_IMAGE){
simageUri=data.getData();
InputStream inputimage = null;
try {
inputimage=getContentResolver().openInputStream(simageUri);
psymbol.setImageBitmap(BitmapFactory.decodeStream(inputimage));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
`
您对这两个应用程序使用相同的请求代码。因此,您必须使用不同的请求代码
所以,你应该这样做-
private static final int PICK_IMAGE=100;
private static final int SET_IMAGE=101;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK && requestCode==PICK_IMAGE){
imageUri=data.getData();
InputStream imageinput = null;
try {
imageinput=getContentResolver().openInputStream(imageUri);
cpic.setImageBitmap(BitmapFactory.decodeStream(imageinput));
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
if (resultCode==RESULT_OK && requestCode==SET_IMAGE){
simageUri=data.getData();
InputStream inputimage = null;
try {
inputimage=getContentResolver().openInputStream(simageUri);
psymbol.setImageBitmap(BitmapFactory.decodeStream(inputimage));
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
这就是你的问题:
private static final int PICK_IMAGE=100;
private static final int SET_IMAGE=100;
更改其中一个变量的值,因为在
onActivityResult
中,如果执行了语句,则两个。请添加xmltoo@AmnaNaeem你不能同时接受这两个答案。如果您尝试接受另一个答案,这将取消选中之前选中的答案。因此,您可以选择只选择一个答案。请选择相关的,并为您提供有关该问题的更多知识和描述。
private static final int PICK_IMAGE=100;
private static final int SET_IMAGE=100;