我有以下两项活动: 第一个活动(AddActivity.java activity_add.xml)包含图像按钮:
<ImageButton
android:layout_width="match_parent"
android:layout_height="120dp"
android:onClick="onClickImageButton"
android:id="@+id/imageButtonProfile"/>
第二个活动:(EnlargeImageActivity.java - activity_enlarge_image.xml) 包含另一个图像按钮:
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/enlargeImageButtonProfile"
android:onClick="onClickImageButton"/>
创建第二个活动(EnlargeImageActivity)时,我想从第一个活动中放入图像并将其放入第二个活动中。 我在这里读到:
How can I pass an Buttom ID to other Activity
不建议在两个活动之间传递图像。
那么如何在创建第二个活动时获得第一个活动的ImageButton?
我不能打findViewById(R.id.imageButtonProfile);
,因为我得到了空
我试过用:
ImageButton ib=(ImageButton)findViewById(R.id.imageButtonProfile);
Intent intent = new Intent(this, EnlargeImageActivity.class);
intent.putExtra(SRC_IMG_BUTTON_ID, ib.getId());
startActivity(intent);
和EnlargeImageActivity.java:
Intent intent = getIntent();
int srcId = intent.getIntExtra(AddActivity.SRC_IMG_BUTTON_ID, 0);
ImageButton ibSrc =(ImageButton)findViewById(srcId);
但同样的结果ibSrc为空
答案 0 :(得分:1)
您可以传递要在imageButton中加载的图像的URI,而不是尝试传递图像。 从活动A,传递包含图像URI的extraData。在活动B中,获取包含URI的extraData并设置imageView源 因此,当建立意图时:
intent.putExtra("imageUri", imageUri.toString());
来自活动B:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String uriFromActivityA = bundle.getString("imageUri");
if (uriFromActivityA != null) {
Uri imageUri = Uri.parse(uriFromActivityA);
imageButton.setImageUri(imageUri);
}
}
答案 1 :(得分:0)
通过意图,您可以使用键传递值,在第二个活动中,您可以使用该键获取它。