android的intent能传递集合吗
发布网友
发布时间:2022-04-20 01:14
我来回答
共1个回答
热心网友
时间:2023-09-06 23:05
方法1: 直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象<pre t="code" l="java">//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转换回来<pre t="code" l="java">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);