使用Intent传递自定义类对象出现的特殊情况
来源:互联网 发布:数控打圈机编程视频 编辑:程序博客网 时间:2024/05/22 14:47
我们都知道Android实现Activity跳转时大多数使用Intent传递数据,用法非常简单,定义Intent对象之后调用方法就行了。
但是大多数情况下我们需要Intent传递自定义类的对象,这些自定义类是我们对一些数据的封装,这时候你会发现传递不了了,网上的一个解决方法是对自定义类序列化,方法也非常简单,直接让我们自定义的类实现一个Serializable接口。发送端代码不变,接收端方法改为使用
intent.getSerializableExtra();
这样的做法可以解决大多数情况,那么有些情况就解决不了了。
下面就开始说这个特殊情况
比如:自定义类的其中一个或几个属性,本身就没有被序列化,像Bitmap就没有被序列化。如果你自定义类里面包含Bitmap属性,那么抱歉,即便是你的自定义类已经被序列化,你的自定义类对象也不能被Intent传递。
如何解决这个问题呢,我们如果能将没有被序列化的属性转化成被序列化的属性就可以传递了,比如Bitmap我们可以转化为byte[],然后再进行传递,传递到位之后我们再转化回Bitmap,就可以了。
下面是Bitmap和byte[]相互转化的方法。直接可以用:
public static byte[] getBytes(Bitmap bitmap){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 0, baos); return baos.toByteArray();}public static Bitmap getBitmap(byte[] data){ return BitmapFactory.decodeByteArray(data, 0, data.length);}
阅读全文
0 0
- 使用Intent传递自定义类对象出现的特殊情况
- 使用Intent传递自定义对象
- intent 传递自定义对象
- Android intent传递自定义类对象
- 使用Intent传递对象
- 使用Intent传递对象
- 使用Intent 传递对象
- 使用Intent传递对象
- 使用Intent传递对象
- 使用Intent传递对象
- 使用intent传递实现Serializable、Parcelable接口的类对象
- 使用Intent传递对象的好处
- Android --- 使用Intent传递对象的方式
- Intent 传递类对象
- intent传递类对象
- Intent传递类对象
- Android中Intent传递自定义对象类型的数据
- Intent 传递类对象的方法一
- java程序员成长的几大成长法则
- awk命令记录
- 微信支付接口的参数规定
- 返回顶部
- 进程间通信 IPC 主题二之 信号量
- 使用Intent传递自定义类对象出现的特殊情况
- SpringMVC AJAX登录
- wifi详解
- 开发者必看|Android 8.0 新特性及开发指南
- 基于基站定位数据的商圈分析代码详细解释
- java调用kotlin注意事项
- kafka 配置文件参数详解
- Tomcat提示指定的服务未安装Unable to open the service 'tomcat'
- 第1.5章 scrapy之pipelines