我有一个需要使用的AsyncTask和onPostExecute(URL下载JSON的应用程序,JSON对象到下一个活动使用putExtra法)通过,但我不断收到错误消息,其内容“putExtra只能用于传递字符串和没有对象“?如何解决这一问题?
Answer 1:
经过帕拉姆时做到这一点:
intent.putExtra("json", jsonobj.toString());
而在你的新的活动解析它像这样:
JSONObject obj = new JSONObject(getIntent().getStringExtra("json"));
Answer 2:
在活动中,你所得到的JSON数据写入下面的代码发送到TAB活动
Intent i = new Intent(getApplicationContext(), Another_Activity.class);
i.putExtra("key", jsonObject.toString());
startActivity(i);
访问数据即JSON对象写在标签活动下面的代码
JSONObject jsonObject = new JSONObject(getIntent().getStringExtra("key"));
Toast.makeText(Another_Activity.this, ""+jsonObject.get("Your JSON VALUE"), Toast.LENGTH_SHORT).show();
您的JSON值是其申请中存在的数据。 例如,“商业标识” 1个这里经营id是JSON值,与你更换
Answer 3:
你应该通过putExtra传递一个序列化或parcelable对象,JSONObject的既不是序列化,也不parcelable对象,所以你不能让它通过putExtra。
所以,你需要利用任何一Parcelable或Serializable类通过解析一个JSONObject,那么你可以使用putExtra的方法来传递。
另一种选择是从jsonOjbect通JSON字符串。
文章来源: How to pass JSON Object to new activity