PDA

Ver la Versión Completa : onActivityResult antes de tiempo


Millas
22/03/13, 02:04:21
Hola, no llevo mucho con android.. pero cada día me sale una traba nueva. El tema es que estoy intentando pasar a una clase un objeto de una actividad.. vamos.. comunicación entre actividades. Y resulta que el método onActivityResult de la primera actividad se ejecuta antes que la segunda actividad.. por tanto no devuelve nada.. a ver si alguien me puede ayudar.

Os dejo un poco de código:

Primera actividad:

public void lanzarUsuarios(View view) {

Intent i = new Intent(this, ListaUsuarios.class);
this.startActivityForResult(i,0);

}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();

switch (requestCode) {
case 0:
usuarioActual = (Usuario) extras.get("usuario");
lanzarSalones(null);
break;
}
}




Segunda actividad:

public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
// TODO Auto-generated method stub

Usuario usuario = (Usuario) lista.getItemAtPosition(position);
Log.w(TAG, "ID = "+ usuario.getIDUsuario() + "; Nombre = " +usuario.getNombre());

Intent dato = new Intent();
dato.putExtra("usuario", usuario);
setResult(RESULT_OK, dato);
finish();
}

pernath
22/03/13, 09:43:04
Buenas,

Por lo que veo en el código pasas parámetros entre actividades.

Puedes probar en trabajar con "shared preferences" y seguramente no te dará problemas.

De esta manera es como si tuvieras una variable global a la que siempre puedes acceder desde cualquier activity.

Bueno espero que te ayude.

Un saludo.

Millas
22/03/13, 18:06:24
Buenas,

Por lo que veo en el código pasas parámetros entre actividades.

Puedes probar en trabajar con "shared preferences" y seguramente no te dará problemas.

De esta manera es como si tuvieras una variable global a la que siempre puedes acceder desde cualquier activity.

Bueno espero que te ayude.

Un saludo.

No se lo que es, voy a buscar información.
Es como atributos estáticos!?

Gracias

Millas
22/03/13, 18:12:08
No pinta mal.. pero en mi programa hay una constante comunicación con una base de datos externa, y creo que para algunas cosas me va a interesar la comunicación de actividades si o si.. mas que nada por cómo tengo montando las vistas y tal..

¿Alguna solución a que OnActivityResult no se ejecute antes de tiempo!?

mocelet
22/03/13, 18:25:47
¿Cómo tienes definida la actividad ListaUsuarios en el AndroidManifest.xml? Por lo visto si la defines como singleTask o singleInstance no puedes llamar al startActivityForResult (no tendría mucho sentido y por eso devuelve el no-resultado enseguida).

Fuente: http://stackoverflow.com/questions/3354955/onactivityresult-called-prematurely

Millas
22/03/13, 18:29:00
¿Cómo tienes definida la actividad ListaUsuarios en el AndroidManifest.xml? Por lo visto si la defines como singleTask o singleInstance no puedes llamar al startActivityForResult (no tendría mucho sentido y por eso devuelve el no-resultado enseguida).

Fuente: http://stackoverflow.com/questions/3354955/onactivityresult-called-prematurely

jajaja me acabo de dar cuenta y lo iba a comentar ahora!! era eso!!
Lo cambie porque al principio no me iba y entonces probé cosas raras.. pero ya está!!

Muchisimas gracias de todas formas!! ^^
:ok::ok::ok::ok:

Tema cerrado