我有一个带有多个用户信息的json数组响应列表。创建了一个包并成功将其传递给下一个活动。使用用户选择的日期和时间创建了另一个包。但是第二个包到同一个活动没有运气,因为我只能将一个包传递给同一个活动。
我的实际问题是如何将putExtras中的第二个包传递给相同的活动
Json Response
{
"userinfo": [
{
"address": "Tambaram",
"name": "Vishranthi"
},
{
"address": "Medavakkam",
"name": "Sophia"
},
]
}
捆绑创建代码:
JSONArray infoarray = obj.getJSONArray("Info");
Bundle h = new Bundle();
for (int i = 0; i < infoarray.length(); i++) {
Bundle b = new Bundle();
JSONObject infoobject = infoarray.getJSONObject(i);
String name = infoobject.getString("name");
String address = infoobject.getString("address");
b.putString("name", name);
b.putString("address", address);
h.putBundle(Integer.toString(i), b);
System.out.println(b);
}
Intent i = new Intent(context, Secondpage.class);
Bundle d=new Bundle();
d.putString("date", text1);
d.putString("time", text2);
i.putExtras(h);
System.out.println(h);
context.startActivity(i);
答案 0 :(得分:0)
你不能,所以最简单的解决方案是将你解析的json传递给第二个活动,将第二个包上想要的值作为基元传递,然后在第二个活动上将json解析为原始数据并检索日期和数据。时间。
答案 1 :(得分:0)
而不是创建另一个Bundle到日期和时间使用相同的
答案 2 :(得分:0)
您不需要反序列化JSONObject或JSONArray,只需将其作为String放在Bundle中。
Bundle bundle = new Bundle();
bundle.putString("MyBundle", infoarray.toString());
所以在下一个Activity中,获取JSONArray
JSONArray newJArray = new JSONArray(bundle.getString("MyBundle",""));
小提示:避免在循环内声明变量以避免内存泄漏。
答案 3 :(得分:0)
我认为你应该稍微改变一下方法: 在您的第一个活动中执行此操作您拥有json数组
rpatch = extractRotatedPatch(img, center, width, height, angle)
并在您的第二个活动中执行其余代码
Intent i = new Intent(context, Secondpage.class);
i.putExtra("userinfo", infoarray.toString());
答案 4 :(得分:0)
如果您想将两个捆绑包放入您的意图中,则必须使用
Intent putExtra (String name,
Bundle value)
类似的东西:
Intent i = new Intent(context, Secondpage.class);
i.putExtra("bundleH", h);
i.putExtra("bundleD", d);