Esto se ha preguntado una vez antes, pero eso no funcionó para mí en absoluto. Así que pensé que volvería a preguntar.Pasar matriz JSON entre actividades a través del intento
Tengo un JSONarray que quiero pasar a mi segunda actividad con un intento.
Esto es parte de mi código que se conecta a una base de datos mysql y pone datos sobre un usuario en un JSONarray. Todo esto funciona hasta ahora.
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
String ct_user;
String ct_pass;
Intent personal = new Intent(Home.this, Loggedin.class);
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
json_data = jArray.getJSONObject(0);
ct_user = json_data.getString("user");
ct_pass = json_data.getString("pass");
if (passwordstring.equals(ct_pass)){
Bundle b = new Bundle();
b.putString("userdata",json_data.toString());
personal.putExtras(b);
startActivity(personal);
}
}
me gustaría enviar mi completa JSONArray través de una intención de mi segunda actividad (loggedin). Para que pueda mostrar, por ejemplo, ct_email = json_data.getString ("email"); que es otro valor en la matriz que obtiene la primera actividad de mysql.
Esta era la otra pregunta sobre este tema: passing jsonarray from 1 activity to another
Esa solución no funcionó para mí, porque en los segundos errores de actividad mantuvo diciendo que no podía convertir paquete a la intención, he intentado todo lo que podía pensar de.
Intent b = getIntent().getExtras();
String userdata=b.getString("userdata");
Gracias
EDITAR
gracias por los chicos respuestas rápidas. Soy nuevo en Stackoverflow así que disculpe mis errores con respecto a las marcas de código, etc. Intento hacerlo todo correctamente.
Pero todavía no funciona para mí. Esto es parte de mi segunda actividad:
public class Loggedin extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loggedin);
myfunction();
}
public void myfunction(){
Bundle b = getIntent().getExtras();
String userdataArray = b.getString("userdata");
String ct_email;
ct_email = userdataArray.getString("email");
}
}
El error es el "getString método (String) está definida para el tipo String". Debo estar haciendo algo estúpido.
+1 para la respuesta correcta, por favor asegúrese de marcar el código como código próxima vez :) Gracias – MByD
. Sin embargo, todavía no funciona. He editado mi primera publicación. –
¿Cuál es el problema que está teniendo? – kosa