Cómo decidir de qué actividad venimos?
Hola Antiguos deportes!
Al punto, tengo 3 actividad como sigue:
- Intent.ACTION_CALL inicia una llamada skype en lugar de una llamada telefónica "normal"
- Android: cómo cambiar el diseño en el botón de clic?
- Relación de Intención y Bundle
- El concepto de una intención en Android?
- Android SMS Intent Hangouts 2.0
-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 ..
- Implícita vs intención explícita en Android (startActivity (intención) se bloquea)
- Android: Abrir navegador con la cookie de sesión suministrada
- ¿Alguien por favor explique RESULT_FIRST_USER
- ¿Cómo obtengo datos adicionales de intenciones en Android?
- Comunicación de Android entre Actividades sin onActivityResult
- Cómo implementar beaviour de cierre de sesión en android
- Cómo obtener la ruta de la imagen en onActivityresult (Intent data is null)
- Presionando el botón de nuevo llama aCrear (Android)
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);
- Android: ¿cómo obtener la lista de todas las preferencias xml para mi aplicación y leerlas?
- ¿Cómo utilizar la intención del calendario?