2012-10-05 13 views
5

tengo la actividad A donde puedo navegar a A->B->C->Dbotón Atrás de prensa tiene que mostrar valor actualizado de la actividad

En Activity D tengo un botón en el que si user'll pulse este botón, que va a ir a Activity A . Aquí crearé una nueva instancia donde el usuario puede actualizar el valor aquí.

que termina la actividad, que va a ir a Activity D, desde Activity D user'll pulse Back Button
D->C->B->A
y llegará a Activity A.

Necesito mostrar el valor actualizado en Activity A, ¿cómo puedo actualizar el valor en 'Actividad A'?

+1

@RobinHood que sería horrible (onResume)! –

Respuesta

4

Vas a querer tener un montón de startActivityForResult() s y básicamente les cadena, desde D de nuevo a A.

ve aquí: How can I pass values between Activities on Android?

Como alternativa, puede almacenar el valor como SharedPreferences y solo búsquelo más tarde, una vez que regrese a la Actividad original.

0

Incluya este fragmento en su actividad D.

@Override 
public void onBackPressed(){ 
    aMethodToUpdateYourActivityA(); 
    } 
2

Use Shared Preferences para guardar sus datos. Por lo tanto, obtendrá los datos en todas sus actividades.

0

Usted puede aprender más acerca del ciclo de vida de actividad y datos de gestión de aquí Activity

cuanto a su pregunta que debe hacer cualquier actualización de los datos de su método onResume dentro de su actividad A.

@Override 
public void onResume(){ 
    //Update your data here 
} 

Si su preocupación es CÓMO pasar datos entre ellos, probablemente debería usar Shared preferences, ya que no se recomienda tener una carga de startActivityForResult en tantas actividades. También, ¿es realmente necesario tener esa gerarquía? Sería más fácil si tan pronto como el usuario actualiza los datos, simplemente inicieActivityA y le pase datos directamente.

0

Esto se puede hacer de 2 maneras:

  1. uso compartido preferencias y almacenar su valor actualizado, entonces onResume() de la Actividad A, leyó desde las mismas preferencias compartidas y actualizar el valor.

  2. inicie actividades utilizando startActivityForResult, y recopile los valores utilizando el objeto intent y transfiéralo a actividades anteriores utilizando setResult.

+0

Gracias por toda su ayuda – mohan

4

creo que debe utilizar SharedPreference para mantener los datos en su botón de retroceso clic o utilizar Variable estática.

// ------------------ ------------------ Para almacenar datos

SharedPreferences.Editor editor = sharedPreferences.edit(); 
       editor.putInt("key", countValue); 
       editor.commit(); 

// --------------------- Para obtener datos ------------------

if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
    Intent home=new Intent(PersentActivity.this,DesiredActivity.class); 

       sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
      int countValue = sharedPreferences.getInt("key", 0); 

       startActivity(home); 

       return true; 
      } 
1

si no está almacenando los datos mientras actualiza Activity A, creo que es mejor almacenarlos en variables estáticas de Activity A y cargar los datos en su onResume().

Si tiene una base de datos, entonces almacene los datos en Activity A desde la base de datos en su onResume().

Cuestiones relacionadas