Intent 不仅可以传单个的值,也可以传对象与数据集合。 传递List<String> 数据集合。
ArrayList<String> info = new ArrayList<String>();
info.add(name);
info.add(website);
info.add(weibo);
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
intent.putStringArrayListExtra("infoList", info);
startActivity(intent);
接收String 的方法。
ArrayList<String> infoList = new ArrayList<String>();
infoList = getIntent().getStringArrayListExtra("infoList");
传递Object,此Obiect对象需要实现Serializable接口,用Serializable方式传递Object的语法:bundle.putSerializable(key,object);用Serializable方式接收Object的语法:object=(Object) getIntent().getSerializableExtra(key);实现Serializable接口就是把对象序列化,然后再传输,和Java的常用编程没什么明显区别,而且Object不需要明显改变,推荐用这种方式。
下面是Object对象:
public class SerInfo implements Serializable {
private String name;
private String website;
private String weibo;
............
}
get,set方法自己创建,用Serializable 传递Object:
SerInfo serInfo = new SerInfo(name, website, weibo);
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putSerializable("serinfo", serInfo);
intent.setClass(MainActivity.this, ResultActivity.class);
intent.putExtras(bundle);
startActivity(intent);
用Serializable 接收Object:
SerInfo serInfo = (SerInfo) getIntent().getSerializableExtra(<span class="string">"serinfo"</span>);
这里讲的只是用Serializable这种方式传递数据,当然还有一种方式用Parcelable接口实现。