2012-08-31 11 views
6

Ho un'applicazione che deve scaricare JSON dall'URL utilizzando AsyncTask e on onExcute() passare quell'oggetto JSON alla prossima attività utilizzando il metodo putExtra, ma ricevo costantemente un errore, che legge "putExtra può essere utilizzato solo per passare stringhe e non oggetti"? Come risolvere questo problema?Come passare l'oggetto JSON alla nuova attività

risposta

25

Fate questo quando passa il param:

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

E nella tua nuova attività per analizzarlo in questo modo:

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

Non capisco che R.id.param parte, ecco il codice 'protected void OnPostExecute (risultato 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 \t} ' –

+0

Questa è solo la chiave, puoi mettere tutto quello che vuoi lì dentro. –

+0

rimuovere R.id.param e passare qualsiasi stringa come chiave –

1

si dovrebbe passare un oggetto serializzabile o Parcelable attraverso putExtra, come JSONObject è né oggetto serializzabile o parcellizzabile, quindi non puoi passarlo attraverso putExtra.

Quindi è necessario rendere una classe Parcelable o Serializable dall'analisi di un oggetto JSONObject, quindi è possibile utilizzare il metodo putExtra per passarlo.

L'altra opzione è passare stringa JSON da jsonOjbect.

0

nell'attività in cui si stanno ottenendo i dati JSON scrivere il seguente codice da inviare al Tab

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

per accedere ai dati ovvero oggetto JSON scrivere il seguente codice nella scheda Attività

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

Il tuo JSON VALUE è il file presente nei dati. ad esempio, "Id Affari" 1 qui ID è il valore JSON, sostituirlo con la vostra

+0

Puoi aggiungere spiegazioni testuali al tuo codice? –

Problemi correlati