Intent传递对象

问题:

Intent传递model到下一层页面,model里包含一个JsonArray对象

报错:

Snip20190614_2.png

问题原因:

Intent不能传递对象

解决方法:

在网上搜了搜,多数提供的都是这个想法

Intent 传递数据是不支持传递对象的,如果要传递你需要序列化他,这样比较麻烦,有两个办法
1、采取静态变量的方法,在第2个页面直接使用。
2、将数据存储到数据库,在第二个页面去取。
3、使用一个中转的类,比如Application,将jsonArray存在里面,在另外一个类中取。

但是我的实际应用场景就是向下传递一个数据,这么处理,个人感觉比较麻烦(没有实际操作,只是感觉)
所以我就直接把它变成字符串,然后在下层解析:

                RequestModel  requestModel = dataList.get(position)
                it.putExtra("requestModel", new Gson().toJson(request));
                startActivity(it);

在下层页面解析:

String requestModelString =getIntent().getStringExtra("requestModel");
RequestModel  requestModel = new Gson().fromJson(requestModelString, RequestModel.class);

你可能感兴趣的:(Intent传递对象)