Cómo decidir de qué actividad venimos?

Hola Antiguos deportes!

Al punto, tengo 3 actividad como sigue:

-Actividad A

-Actividad B

-Actividad C

En la actividad AI crear una intención de ir a la actividad C:

Intent intent=new Intent(getActivity(),C.class); startActivity(intent); 

En la actividad BI crear la intención de ir a la actividad C también:

 Intent intent=new Intent(getActivity(),C.class); startActivity(intent); 

En la actividad CI voy a hacer algo diferente si es de A y B.

La pregunta es ¿cuál es la mejor práctica sobre cómo dejar que la actividad C sepa si la actividad A o B que está llamando?

-Lo siento falta Inglés, saludo de bali ..

Lo que puede hacer aquí es, puede pasar un valor decir flag = "A" cuando es de la Activity A y flag = B cuando es de la Activity B través de Intent y obtener ese valor en la Activity C

En la Actividad A

 Intent intent = new Intent(this, C.class); intent.putExtra("flag", "A"); startActivity(intent); 

En la Actividad B

 Intent intent = new Intent(this, C.class); intent.putExtra("flag", "B"); startActivity(intent); 

En la Actividad C

  Intent intent = getIntent(); String checkFlag= intent.getStringExtra("flag"); if(checkFlag.equals("A"); // It is from A else // It is from B 

Puede pasar un parámetro con intención a otra actividad, de esta manera puede saber qué actividad se inició.

 Intent intent=new Intent(getActivity(),C.class); intent.putString("activity","A"); // and same goes for B startActivity(intent); 

Y en la Actividad C,

 Intent intent = getIntent(); String previousActivity= intent.getStringExtra("activity"); 

También puede tomar variable estática en su actividad y luego pasar el valor de la variable estática con la intención.

Como ex.

 public static int a = 1; 

y

 public static int b = 2; 

Y luego pasar esto con la intención

Y en su última actividad obtener el valor de la variable estática y hecho. Podrás saber de qué actividad procede.

Tienes dos opciones.

1) Utilice startActivityForResult() al llamar a la actividad C En este caso, puede utilizar el método getCallingActivity() para encontrar esto.

2) Agregue un extra a la intención al llamar a la actividad C

 // in activity A Intent intent = new Intent(this, C.class); intent.putExtra("calling", "A"); startActivity(intent); // in activity B String callingActivity = getIntent().getStringExtra("calling"); 

De Clase A a Clase C:

 Intent intent=new Intent(getActivity(),C.class); intent.putExtras("ActivityName","A") startActivity(intent); 

De Clase B a Clase C:

 Intent intent=new Intent(getActivity(),C.class); intent.putExtras("ActivityName","B") startActivity(intent); 

Y en la clase C escribes,

  String strActivityName = getIntent().getStringExtra("ActivityName"); 

Sobre la base del valor que recibe, puede decidir la actividad de la llamada y accroding realizar su personalización allí.

Me gustaría crear una variable estática booleana en su actividad C y luego pasar el valor de la variable estática con C como true para una actividad y false como actividad B. Antes de iniciar la actividad C, actualizaremos la variable estática en la actividad C

Ex

 C.fromActivity=true; Intent intent=new Intent(getActivity(),C.class); startActivity(intent); 
  • Abrir archivo adjunto .txt de correo electrónico en la aplicación para Android
  • Abrir un archivo seleccionado (imagen, pdf, ...) de forma programática de mi aplicación de Android?
  • Iniciar siempre una nueva instancia de actividad sin historial
  • Selección entre cámara y galería para la selección de imágenes
  • Uso de Intent en una aplicación de Android para mostrar otra actividad
  • Android AsyncTask: inicia nueva Actividad en onPostExecute ()
  • MyIntent.getStringExtra devuelve null?
  • Android Intent No se puede resolver el constructor
  • Cómo utilizar Intent.ACTION_APP_ERROR como medio para un marco de "retroalimentación" en Android?
  • Android: android.intent.action.BOOT_COMPLETED en ICS y Gingerbread
  • FLAG_ACTIVITY_SINGLE_TOP no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.