方法一:通过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
- 首先先把实例类的对象加上Serializable。
-
intent.putExtra("vocabularies", (Serializable) vocabularies);
实例化对象并赋值,直接通过intent传递,但是需要加上(Serializable) -
vocabularies = (ArrayList<Vocabulary>) getIntent().getExtras().get("vocabularies");
接收的时候也是使用相应的get方法,然后强转一下即可。
方法三:Parcelable
Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java自带的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以用在进程间通信中。实现Serializable接口非常简单,声明一下就可以了。而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。