发布网友 发布时间:2023-12-23 13:43
共2个回答
热心网友 时间:2024-11-30 07:15
这种数据不建议使用intent去传,太复杂了,用bundle的话数据得有多少、、、、 建议在自己的程序里面加静态变量等于 该 ArrayList<Map<String,Node>> ,或者实现一个非静态变量的 get 和 Set方法 ,这样在其他地方可以直接调用。热心网友 时间:2024-11-30 07:18
如果Node是自己写的一个类
那么只需要让Node实现Serializable序列化接口就行
如果Node是某个api提供的一个类那么就修改不到,这时候可以把这个对象转换为其他形式再进行传输,比如json,最简便的就用Gson框架了
ArrayList<Map<String,Node>> data = new ArrayList<Map<String,Node>>();在接收方再使用Gson把json解析成对象
String jsonData = getIntent().getStringExtra("data");更简便的方法就是把data设置为全局变量,随处可以访问,但是这个方法不好
总的来说,这种较大的对象不要使用intent来传输,intent只适合用来传输一些小数据,
而且intent传输时有大小限制的,为40K左右