2012-08-31 23 views
6

Tengo una aplicación que necesita descargar JSON de la URL usando AsyncTask y onPostExecute() pasa ese objeto JSON a la siguiente actividad usando el método putExtra, pero constantemente recibo un error, que dice "putExtra solo se puede usar para pasar cadenas y no objetos"? ¿Cómo solucionar esto?Cómo pasar el objeto JSON a la nueva actividad

Respuesta

25

Haga esto al pasar el param:

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

Y en su nueva actividad analizarlo así:

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

que no entiendo que R.id.param parte, aquí está el código 'protected void onPostExecute (resultado de Object) { \t \t \t Intención startApp = nueva intención ("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

Esa es la clave, puedes poner lo que quieras allí. –

+0

eliminar R.id.param y pasar cualquier cadena como clave –

1

debe pasar un objeto serializable o parcelable través putExtra, como JSONObject no es ni objeto serializable ni parcelable, por lo que no puede pasarlo a putExtra.

Necesita crear una clase Parcelable o Serializable para analizar un JSONObject, luego puede usar el método putExtra para pasarlo.

La otra opción es pasar cadena JSON de jsonOjbect.

0

En la actividad en la que usted está recibiendo los datos JSON escribir el siguiente código para enviar a la actividad TAB

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

para acceder a los datos, es decir objeto JSON Escriba el siguiente código en la pestaña Actividad

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

Su JSON VALUE es el archivo que está presente en los datos. por ejemplo, "ID de empresa" 1 aquí Identificación del negocio es el valor JSON, sustituirla por la suya

+0

¿Puede agregar explicaciones textuales a su código? –

Cuestiones relacionadas