我有一个应用程序,需要使用AsyncTask从URL下载JSON,并在onPostExecute()上使用putExtra方法将该JSON对象传递给下一个Activity,但我不断收到错误,其中显示“putExtra只能用于传递字符串而不是对象“?如何解决这个问题?
答案 0 :(得分:26)
传递参数时执行此操作:
intent.putExtra("json", jsonobj.toString());
在你的新活动中解析它就像这样:
JSONObject obj = new JSONObject(getIntent().getStringExtra("json"));
答案 1 :(得分:1)
你应该通过putExtra传递一个可序列化或可分割的对象,因为JSONObject既不是可序列化的也不是parcelable对象,所以你不能通过putExtra传递它。
因此,您需要通过解析JSONObject来创建Parcelable或Serializable类,然后您可以使用putExtra方法来传递它。
另一个选项是从jsonOjbect传递JSON字符串。
答案 2 :(得分:1)
在您获取JSON数据的活动中,编写以下代码以发送到TAB活动
Intent i = new Intent(getApplicationContext(), Another_Activity.class);
i.putExtra("key", jsonObject.toString());
startActivity(i);
访问数据即JSON对象在选项卡Activity
中编写以下代码 JSONObject jsonObject = new JSONObject(getIntent().getStringExtra("key"));
Toast.makeText(Another_Activity.this, ""+jsonObject.get("Your JSON VALUE"), Toast.LENGTH_SHORT).show();
您的JSON VALUE是数据中存在的字段。例如"业务ID" 1 这里的业务ID是JSON值,用你的
替换它