2012-08-31 15 views
6

Mam aplikację, która musi pobrać JSON z adresu URL za pomocą AsyncTask i onPostExecute() przekazać ten obiekt JSON do następnej aktywności przy użyciu metody putExtra, ale ciągle dostaję błąd, który brzmi "putExtra może być używany tylko do przekazywania ciągów znaków, a nie obiektów"? Jak to naprawić?Jak przekazać obiekt JSON do nowej aktywności

Odpowiedz

25

Czy to przy przejściu param:

intent.putExtra("json", jsonobj.toString()); 

A w swojej nowej działalności analizować je tak:

JSONObject obj = new JSONObject(getIntent().getStringExtra("json")); 
+0

dont zrozumieć, że R.id.param część, tutaj jest kod 'protected void onPostExecute (wynik Object) { \t \t \t Intent startApp = new Intent ("com.example.androidhive.HOME"); \t \t \t StartApp.putExtra (R.id.param, result.toString()); \t \t \t startActivity (startApp); \t \t \t // finish(); \t } ' –

+0

To tylko klucz, możesz tam umieścić wszystko, co chcesz. –

+0

usunąć R.id.param i przekazać dowolny ciąg jako klucz –

1

Należy zdać zaszeregować lub parcelable obiektu poprzez putExtra, jak JSONObject nie jest ani serializowalny ani paralelowy obiekt, więc nie możesz go przekazać za pomocą putExtra.

Musisz więc utworzyć klasę Parcelable lub Serializable z parsowania JSONObject, następnie możesz użyć metody putExtra, aby ją przekazać.

Inną opcją jest przekazanie ciągu JSON z jsonOjbect.

0

W działalności, w których otrzymujesz dane JSON napisać następujący kod do wysyłania do aktywności TAB

Intent i = new Intent(getApplicationContext(), Another_Activity.class); 
          i.putExtra("key", jsonObject.toString()); 
          startActivity(i); 

dostęp do danych tj obiekt JSON Wpisz następujący kod w zakładce Aktywny

JSONObject jsonObject = new JSONObject(getIntent().getStringExtra("key")); 
        Toast.makeText(Another_Activity.this, ""+jsonObject.get("Your JSON VALUE"), Toast.LENGTH_SHORT).show(); 

Twoja WARTOŚĆ JSON jest polem, które jest obecne w danych. np "Business Id" 1 tutaj id firma jest wartość JSON, wymień go na twoje

+0

Czy możesz dodać wyjaśnienia tekstowe do swojego kodu? –

Powiązane problemy