Activity之间传递ArrayList/对象/数组

方法一:通过Bundle

Bundle b = new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);

其中key就是键值,理论上是一个字符串。context就是当前环境,class就是跳转的目标类。这样设置之后,就可以通过传递intent中的Bundle来实现传递数组。
除了putStringArray还可以存各种类型的书。

Bundle b = getIntent().getExtras();
String[] array = b.getStringArray(key);

取出的话,就使用相应的get方法就行了

方法二:Serializable

  1. 首先先把实例类的对象加上Serializable。
  2. intent.putExtra("vocabularies", (Serializable) vocabularies);
    实例化对象并赋值,直接通过intent传递,但是需要加上(Serializable)
  3. vocabularies = (ArrayList<Vocabulary>) getIntent().getExtras().get("vocabularies");
    接收的时候也是使用相应的get方法,然后强转一下即可。

方法三:Parcelable

Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java自带的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以用在进程间通信中。实现Serializable接口非常简单,声明一下就可以了。而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。

Activity之间传递ArrayList数据

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容