Android 单击“上载”按钮后在其他活动中显示图像
单击“上载”按钮后,我想向其他活动显示我的图像。我有两个活动(主要和主要2)。目前,在从gallery中选择图像后,我打算将uri用于下一个活动。我如何将uri改为上传按钮 MainActivity.JavaAndroid 单击“上载”按钮后在其他活动中显示图像,android,android-intent,Android,Android Intent,单击“上载”按钮后,我想向其他活动显示我的图像。我有两个活动(主要和主要2)。目前,在从gallery中选择图像后,我打算将uri用于下一个活动。我如何将uri改为上传按钮 MainActivity.Java private void uploadImage(){ @Override public void onResponse(String s) { loading.dismiss(); Toast.makeTe
private void uploadImage(){
@Override
public void onResponse(String s) {
loading.dismiss();
Toast.makeText(MainActivity.this, s , Toast.LENGTH_LONG).show();
Intent i = new Intent(MainActivity.this,Main2Activity.class);
startActivity(i);
finish();
}
},
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
Intent i = new Intent(this,Main2Activity.class);
i.putExtra("imagepath", filePath.toString());
startActivity(i);
} catch (IOException e) {
e.printStackTrace();
}
}
}
您可以将Uri变量更改为类级变量,以存储从onActivityResult获得的Uri结果
private Uri filePath;
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
Intent i = new Intent(this,Main2Activity.class);
i.putExtra("imagepath", filePath.toString());
startActivity(i);
} catch (IOException e) {
e.printStackTrace();
}
然后在按钮中,您可以将Uri传递为:
Intent i = new Intent(this,Main2Activity.class);
i.putExtra("imagepath", filePath.toString());
startActivity(i);
试试这个代码
首先将uri作为字符串放入意图中
intent.putExtra("imageUri", imageUri.toString());
然后在第二个活动中,只需像这样转换回字符串
Uri myUri = Uri.parse(extras.getString("imageUri"));
您可以按以下方式执行此操作: 定义类级别变量:
String filePathString = null;
private void uploadImage(){
@Override
public void onResponse(String s) {
loading.dismiss();
Toast.makeText(MainActivity.this, s , Toast.LENGTH_LONG).show();
Intent i = new Intent(MainActivity.this,Main2Activity.class);
startActivity(i);
finish();
}
},
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
Intent i = new Intent(this,Main2Activity.class);
filePathString = filePath.toString();
i.putExtra("imagepath", filePath.toString());
startActivity(i);
} catch (IOException e) {
e.printStackTrace();
}
}
}
然后在按钮上设置OnClickListener:
uploadButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(this,Main2Activity.class);
i.putExtra("imagepath", MainActivity.this.filePathString);
startActivity(i);
MainActivity.this.finish();
}
});
哇!非常感谢你!它可以工作,但当我从“多媒体资料”中选择“图像”时,它仍打算进行下一个活动,我不希望这样做。然而,我通过注释/删除startActivity(i)onActivityResult解决了这个问题。我删除startActivity是为了防止它打算进行下一个活动,这是正确的吗?事实上是这样的。如果您希望仅通过单击按钮继续下一个活动,则startActivity(i)应仅放置在按钮的onClick方法中。非常感谢!很高兴为您提供帮助,请将答案标记为已接受,这样,如果其他人有相同的问题,他们可以从中受益:)谢谢您的帮助!:)不客气,请投票并接受答案!!谢谢你的帮助!:)
Uri filePath = data.getData();
String[] projection = {MediaStore.MediaColumns.DATA};
Cursor cursor = managedQuery(filePath, projection, null, null,
null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
cursor.moveToFirst();
String selectedImagePath = cursor.getString(column_index);
Then pass selectedImagePath in the intent like below
Intent i = new Intent(this,Main2Activity.class);
i.putExtra("imagepath", filePath.toString());
startActivity(i);