我有一个JSON对象的数组列表,我试图像这样通过。
ArrayList<JSONObject> entryCities = new ArrayList<>();
for(int i = 0; i < entries.length(); i++){
entryCities.add(entries.getJSONObject(i));
}
Intent intent = new Intent(UnitedStatesActivity.this, StateActivity.class);
intent.putExtra("object", entryCities);
startActivity(intent);
我知道这不起作用,我需要创建我的数组,或者数组中的JSON对象可以生成。我开始查看文档并提出了我希望将ArrayList<JSONObject>
传递给我的课程,但我不确定我应该在{{1}中添加什么}} 方法。
我是否写出了我想要提取的JSON对象的具体值?即
writeToParcel()
然后将我的parcelable对象传递给下一个活动?我只是不确定在使JSON对象可分割的上下文中该方法的内容应该是什么。
公共类StateParcelable extends JSONObject实现了Parcelable {
out.object.getString("string")
答案 0 :(得分:4)
既然你已经拥有(似乎是)JSONArray的JSONArray,为什么不将它转换为String,传递它,并从那里重建JSONArray?
Intent intent = new Intent(UnitedStatesActivity.this, StateActivity.class);
intent.putExtra("object", entries.toString());
startActivity(intent);
然后在以下活动中:
JSONArray entries = new JSONArray(getIntent().getStringExtra("object"));
否则,是的,你必须遍历并序列化ArrayList中的各个项目,然后重建并将它们添加到列表中。
另外,请注意,您可以通过相同的方式传递单个JSONObject:分别通过toString()
和new JSONObject(getIntent().getStringExtra("object"))
。