Appeler une activité à partir d’une autre dans Android

Comment puis-je appeler une autre activité à partir d’une (l’actuelle) activité?

Et pour la même chose je veux appeler une activité qui contient une boîte de dialog de mon activité en cours.

Première question:

Utilisez l’intention d’appeler une autre activité. Dans le manifeste, vous devez append

   

Et dans votre activité actuelle,

 btListe = (ImageButton)findViewById(R.id.Button_Liste); btListe.setOnClickListener(new OnClickListener() { public void onClick(View v) { intent = new Intent(main.this, ListViewImage.class); startActivity(intent); finish(); } }); 

Deuxième question:

 sendButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Ssortingng valueSsortingng = editValue.getText().toSsortingng(); long value; if (valueSsortingng != null) { value = Long.parseLong(valueSsortingng); } else { value = 0; } Bundle sendBundle = new Bundle(); sendBundle.putLong("value", value); Intent i = new Intent(Activity1.this, Activity2.class); i.putExtras(sendBundle); startActivity(i); finish(); } }); 

et dans Activity2:

  Bundle receiveBundle = this.getIntent().getExtras(); final long receiveValue = receiveBundle.getLong("value"); receiveValueEdit.setText(Ssortingng.valueOf(receiveValue)); callReceiverButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(Activity2.this, Receiver.class); i.putExtra("new value", receiveValue - 10); } }); 

vérifiez le code suivant pour appeler une activité d’une autre.

 Intent intent = new Intent(CurrentActivity.this, OtherActivity.class); CurrentActivity.this.startActivity(intent); 

J’ai utilisé le code suivant sur mon exemple d’application pour démarrer une nouvelle activité.

 Button next = (Button) findViewById(R.id.TEST); next.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent myIntent = new Intent( view.getContext(), MyActivity.class); startActivityForResult(myIntent, 0); } }); 

Comme nous ne soaps pas quels sont les noms de vos classes d’activités, appelons votre activité actuelle Activity1, et celle que vous souhaitez ouvrir – Activity2 (ce sont les noms des classes)

Vous devez d’abord définir une intention qui sera envoyée à Activity2:

 Intent launchActivity2 = new Intent(Activity1.this, Activity2.class); 

Ensuite, vous pouvez simplement lancer l’activité en exécutant:
startActivity (launchActivity2);

Ajoutez ce qui suit à votre événement de clic sur le bouton:

 Intent intent = new Intent(First.this, Second.class); startActivity(intent); finish(); 

Cette tâche peut être accomplie en utilisant l’un des principaux blocs de construction de l’androïde nommés Intents et une des méthodes public void startActivity (Intent intent) qui appartient à votre classe d’activité.

Une intention est une description abstraite d’une opération à effectuer. Il peut être utilisé avec startActivity pour lancer une activité, broadcastIntent pour l’envoyer à tout composant BroadcastReceiver intéressé, et startService (Intent) ou bindService (Intent, ServiceConnection, int) pour communiquer avec un service d’arrière-plan.

Un Intent permet d’effectuer une liaison d’exécution tardive entre le code dans différentes applications. Son utilisation la plus significative se situe dans le lancement d’activités, où il peut être considéré comme le lien entre les activités. Il s’agit essentiellement d’une structure de données passive contenant une description abstraite d’une action à effectuer.

Référer les documents officiels – http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) – Utilisé pour lancer une nouvelle activité.

Donc, supposons que vous ayez deux classes d’activité et que l’on clique sur OnClickListener() un clic de bouton pour passer d’une activité à une autre puis –

  1. PresentActivity – Ceci est votre activité actuelle à partir de laquelle vous souhaitez effectuer la deuxième activité.

  2. NextActivity – Ceci est votre prochaine activité sur laquelle vous souhaitez vous déplacer (il peut contenir tout ce que vous dites dans la boîte de dialog).

Donc, l’intention serait comme ça

 Intent(PresentActivity.this, NextActivity.class) 

Enfin ce sera le code complet

  public class PresentActivity extends Activity { protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.content_layout_id); final Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class); // currentContext.startActivity(activityChangeIntent); PresentActivity.this.startActivity(activityChangeIntent); } }); } } 

Cet exemple est lié au clic sur un bouton, vous pouvez utiliser le code n’importe où qui est écrit à l’intérieur du clic du bouton OnClickListener() à n’importe quel endroit où vous souhaitez basculer entre vos activités.

Mettez ceci dans la méthode onCreate () de MainActivity1.java

 Button btnEins = (Button) findViewById(R.id.save); btnEins.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Intent intencion = new Intent(v.getContext(),MainActivity2.class ); startActivity(intencion); } }); 

J’ai mis en œuvre de cette façon et cela fonctionne. C’est beaucoup plus facile que tout ce qui est rapporté.

Nous avons deux activités: l’une est la principale et l’autre est la secondaire .

Dans l’activité secondaire, qui est l’endroit où l’on veut mettre fin à l’activité principale , définissez la variable suivante:

 public static Activity ACTIVIDAD; 

Et puis la méthode suivante:

 public static void enlaceActividadPrincipal(Activity actividad) { tuActividad.ACTIVIDAD=actividad; } 

Ensuite, dans votre activité principale à partir de la méthode onCreate , vous effectuez l’appel:

  actividadSecundaria.enlaceActividadPrincipal(this); 

Maintenant, vous êtes en contrôle. Maintenant, à partir de votre activité secondaire, vous pouvez terminer l’activité principale . Terminez d’appeler la fonction, comme ceci:

 ACTIVIDAD.finish(); 

Le code suivant montre comment vous pouvez démarrer une autre activité via une intention.

Démarrer l’activité avec une intention connectée à la classe spécifiée

 Intent i = new Intent(this, ActivityTwo.class); startActivity(i); 

Les activités lancées par d’autres activités Android sont appelées sous-activités. Cette formulation facilite la description de l’activité.

vérifiez le code suivant pour ouvrir une nouvelle activité.

Intention f = nouvelle intention (MainActivity.this, SecondActivity.class);

startActivity (f);

Le moyen le plus simple d’appeler une activité à une autre est

 startActivity( new Intent( getApplicationContext(), YourActivity.class ) );