47 votes

Android obtenir l'activité précédente

J'ai 2 activités (Activité1, Activité2) Dans chacune de ces activités, il y a un bouton qui me mène à une troisième activité (MainActivity). Dans MainActivity, je veux savoir à partir de quelle page d'activité a été appelée.

53voto

Prabuddha Points 37089

Vous pouvez utiliser l'attribut putExtra de l'intention pour transmettre le nom de l'activité.

Activité d'appel,

         Intent intent = new Intent(this, Next.class);
        intent.putExtra("activity","first");
        startActivity(intent);
 

Activité suivante,

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

Dans l'activité de chaîne, vous obtiendrez le nom de l'activité d'origine.

22voto

brianestey Points 3206

Vous pouvez utiliser:

 public ComponentName getCallingActivity()
 

pour savoir quelle activité a appelé votre Activity actuel.

6voto

Chrishi Points 1460

Utilisez putExtra () pour identifier l'activité précédente.

 Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1");
startActivity(i);
 

Pour vérifier l'activité dans l'activité principale,

 if(getIntent().getStringExtra("from").equals("activity1")){
//From Activity 1
}else {
// Activity 2
}
 

1voto

Narendra Points 56

ActivityManager am = (ActivityManager) this.getSystemService(Activity.ACTIVITY_SERVICE); String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); String className = am.getRunningTasks(1).get(0).topActivity.getClassName();

et nous avons mis la permission:

<uses -permission="-permission" android:name="android.permission.GET_TASKS"> </uses>

0voto

Arun Kumar Points 364

Lorsque vous passez d'une activité à une autre, vous pouvez transmettre le nom de l'activité comme indiqué ci-dessous.

 Intent i = new Intent(this, deliveries.class);
        i.putExtra("ActivityName", "ActivityOne");
        startActivity(i);
 

et vérifiez le nom de l'activité dans l'activité précédente

 Bundle extra = getIntent().getExtras();
    String activityName= Long.parseLong(extra.getSerializable("ActivityName")
toString());
 

Je pense que ça peut résoudre ton problème

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X