我已经尝试了一段时间了。我正在尝试将JsonArray从一个Intent传递到另一个Intent。下面是我的代码。
Intent intent = new Intent(this, DownloadService.class);
Bundle bundle = new Bundle();
JSonArrayParser jSonArrayParser = new JSonArrayParser(dealTypeList);
bundle.putParcelable("jsonArray", jSonArrayParser);
intent.putExtra("deals_list", bundle);
this.startService(intent);
JSonArrayParser实现了可打包。
在将Jsonarray传递给Bundle之前,我已经检查了JSonArrayParser是否按预期填充了Jsonarray。
问题是当我在另一个意图上读出来的时候。我得到了一个空的JsonArray。
以下是我目前的情况。
if(intent.hasExtra("jsonArray"))
{
JSonArrayParser jSonArrayParser = null;
Bundle bundle = intent.getParcelableExtra("jsonArray");
if (bundle != null) {
jSonArrayParser = bundle.getParcelable("deals_list");
String jsonMyObject = bundle.getString("deals_list");
jSonArrayParser = intent.getParcelableExtra("deals_list");
if(jSonArrayParser != null)
{
JSONArray jsonArray = jSonArrayParser.getJsonArray();
String ssad = "";
}
}
}
我已经尝试了很多不同的变体来尝试读取值,但似乎JSONArray总是null。
在发布这篇文章之前,我已经在网上搜索过了。如果有人能帮忙,那就太好了。
先谢了。
编辑:
我尝试过如下所示将JSonArray作为字符串传递,但这似乎根本没有启动意图。
Intent intent = new Intent(your_activity.this, new_activity.class);
intent.putExtra("jsonArray", dealTypeList.toString());
startActivity(intent);
3条答案
按热度按时间vmjh9lq91#
我是这样做你的工作的。请你检查这边。
检索其他类中数据。
你也检查,你的数据分配部分也。我想,这可能是一些帮助你。你尝试检索数据其他类,在'onCreat'方法。直接像上面的代码。
r9f1avp52#
我想你用错钥匙了...请检查一下...
您正在将bundle放入Intent中,键为“deal_list”。在bundle中,您拥有键为“jsonArray”的jsonarray。
所以首先你应该检查键“deal_list”,因为你把它(bundle)放在Intent中,然后从bundle中获取键“jsonArray”。
检查一次代码。Bundle bundle = intent.getParcelableExtra(“jsonArray”);
这里您做错了,直接从Intent中获取jsonArray,而不是先从Intent中获取Bundle,然后再获取jsonArray。
查看此链接,了解我们如何在Intent.Passing values through bundle and get its value on another activity中使用bundle
hc2pp10m3#
您可以使用简单的putExtra传递json数组,如下所示:
其中,
mJsonArray
是json数组。现在,在您的new_activity.java中: