Android 中传递对象的集合

发布网友 发布时间:2022-04-24 14:30

我来回答

2个回答

热心网友 时间:2023-10-16 11:22

方法1:

    直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象

//User类
public class User implements Serializable{
    private String name;
    ..........
}

//直接加入intent
List<User> list = new ArrayList<User>();
Intent intent = new Intent();
intent.putExtra("list",list);


方法2:

    把list集合转为字符串表示,可以使用json格式,直接用Gson框架转换即可,再到另一个activity转换回来

List<User> list = new ArrayList<User>();
Type type = new TypeToken<ArrayList<User>()>(){}.getType();
String json = new Gson().toJson(list,type);
intent.putExtra("list",json);

//转换回List<User>
String json = getIntent.getStringExtra("list");
Type type = new TypeToken<ArrayList<User>()>(){}.getType();
List<User> list = new Gson().fromJson(json,type);

热心网友 时间:2023-10-16 11:23

Intent intent = ....;//intent定义
ArrayList<User> list = .....;//list赋值
intent.putExtra("userList", list.toArray());
startActivity(intent);
前提是list中的User必须implements Serializable

接收时:
Intent intent = this.getIntent();
Object[] cobjs = (Object[]) intent.getSerializableExtra("userList");
for (int i = 0; i < cobjs.length; i++) {
User user = (User) cobjs[i];
userList.add(user);
}

参考资料:http://www.qingzhui.com/blog_article.php?id=7

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com