我有一個應用程序需要使用AsyncTask從onSQL下載JSON並使用onPostExecute()將該JSON對象傳遞給下一個使用putExtra方法的活動,但我不斷收到錯誤,讀取「putExtra只能用於傳遞字符串而不是對象」?如何解決這個問題?如何將JSON對象傳遞給新的活動
intent.putExtra("json", jsonobj.toString());
而在你的新的活動解析它像這樣:
我有一個應用程序需要使用AsyncTask從onSQL下載JSON並使用onPostExecute()將該JSON對象傳遞給下一個使用putExtra方法的活動,但我不斷收到錯誤,讀取「putExtra只能用於傳遞字符串而不是對象」?如何解決這個問題?如何將JSON對象傳遞給新的活動
intent.putExtra("json", jsonobj.toString());
而在你的新的活動解析它像這樣:
經過帕拉姆當做到這一點
JSONObject obj = new JSONObject(getIntent().getStringExtra("json"));
您應該通過putExtra傳遞一個序列化或parcelable對象,JSONObject的既不是可序列化的也不可parcelable對象,所以你不能通過putExtra傳遞它。
因此,您需要製作一個Parcelable或Serializable類來解析JSONObject,然後您可以使用putExtra方法來傳遞它。
另一個選項是從jsonOjbect傳遞JSON字符串。
在活動中,你所得到的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 VALUE是存在於數據中的字段。例如,「商業標識」 1個 這裏的業務ID是JSON值,與你更換
您能否向您的代碼添加文本解釋? –
我不明白,R.id.param部分,這裏是代碼'保護無效onPostExecute(對象結果){ \t \t \t意圖startApp =新意圖(「com.example.androidhive.HOME」); \t \t \t startApp.putExtra(R.id.param,result.toString()); \t \t \t startActivity(startApp); \t \t \t // finish(); \t \t}' –
這只是關鍵,你可以把你想要的東西放在那裏。 –
刪除R.id.param並傳遞任何字符串作爲鍵 –