如何从其他活动中获取ImageButton图像?

时间:2016-11-12 14:10:01

标签: android

我有以下两项活动: 第一个活动(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为空

2 个答案:

答案 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)

通过意图,您可以使用键传递值,在第二个活动中,您可以使用该键获取它。