You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何接收通过putExtra在两个Activity间传递的ImageView?

解决Activity间传递ImageView的问题

嘿,其实直接传递ImageView对象是行不通的哦!因为ImageView属于View的子类,它和当前Activity的上下文、窗口是绑定在一起的,而且View并没有实现Parcelable或者Serializable接口,没法通过Intent的putExtra来序列化传递。

你代码里已经拿到了图片的URL(image_data),这才是应该传递的核心数据!下面是具体的修改步骤:

1. 修改发送端(RecyclerViewAdapter的点击事件)

把传递ImageView的逻辑改成传递图片URL:

holder.mView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(v.getContext(), 你的目标Activity.class);
        // 把图片URL放到Intent里,用一个自定义的key标记
        intent.putExtra("KEY_IMAGE_URL", image_data);
        v.getContext().startActivity(intent);
    }
});

2. 在目标Activity中接收并加载图片

在目标Activity的onCreate方法里,取出URL,再用图片加载库(比如Glide,这是Android开发中常用的图片加载工具)把图片加载到新的ImageView中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.你的目标Activity布局);

    // 获取布局里的ImageView
    ImageView targetImageView = findViewById(R.id.你的ImageView控件ID);
    // 从Intent中取出传递过来的URL
    String imageUrl = getIntent().getStringExtra("KEY_IMAGE_URL");

    // 确保URL不为空,然后用Glide加载图片
    if (imageUrl != null && !imageUrl.isEmpty()) {
        Glide.with(this)
             .load(imageUrl)
             .placeholder(R.drawable.占位图资源ID) // 可选:加载时显示的占位图
             .error(R.drawable.加载失败图资源ID) // 可选:加载失败时显示的图
             .into(targetImageView);
    }
}

补充:如果不用Glide,原生方式加载(不推荐,容易出OOM)

要是你暂时不想用第三方库,也可以用原生代码加载,但记得要在子线程里执行网络请求,然后切回主线程更新UI:

new Thread(() -> {
    try {
        URL url = new URL(imageUrl);
        Bitmap bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());
        // 切回主线程设置图片
        runOnUiThread(() -> targetImageView.setImageBitmap(bitmap));
    } catch (IOException e) {
        e.printStackTrace();
    }
}).start();

为什么不能直接传ImageView?

简单说两点:

  • View是和当前Activity的窗口绑定的,脱离原上下文后在新Activity里无法正常渲染
  • Intent传递的对象必须实现Parcelable或Serializable接口,View并没有实现这些,所以没法被序列化传递

内容的提问来源于stack exchange,提问作者Dor Furman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:42:31