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) getIntent().getExtras().get("vocabularies");
    接收的时候也是使用相应的get方法,然后强转一下即可。

方法三:Parcelable

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

Activity之间传递ArrayList数据

你可能感兴趣的:(Activity之间传递ArrayList/对象/数组)