46 votes

Appel d'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 dialogue de mon activité actuelle.

53voto

maydenec Points 985

Première question:

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

 <activity android:name="ListViewImage"></activity>
<activity android:name="com.company.listview.ListViewImage">
</activity>
 

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) {
            String valueString = editValue.getText().toString();
            long value;
            if (valueString != null) {
                value = Long.parseLong(valueString);
            }
            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 l'activité 2:

  Bundle receiveBundle = this.getIntent().getExtras();
    final long receiveValue = receiveBundle.getLong("value");
    receiveValueEdit.setText(String.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);
        }
    });
 

10voto

Tushar Vengurlekar Points 3169

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

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

5voto

Kunal Points 1943

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);
    }
});
 

4voto

Erez A. Korn Points 1193

Comme nous ne savons 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);

1voto

Nikhil Agrawal Points 3687

Cette tâche peut être accomplie à l'aide de l'un des android bâtiment principal de bloc nommé d'Intentions et de l'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 aux intéressés BroadcastReceiver composants, et startService(Intent) ou bindService(But, ServiceConnection, int) pour communiquer avec un Service d'arrière-plan.

Une Intention prévoit une installation pour la réalisation de la fin d'exécution de liaison entre le code dans des applications différentes. Son plus grand usage est dans le lancement d'activités, où il peut être considéré comme de la colle entre les activités. C'est fondamentalement une passive de données de la structure de la tenue d'une description abstraite d'une action à effectuer.

Consulter les docs officielles -- http://developer.android.com/reference/android/content/Intent.html

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

Donc, supposons que vous avez deux classes d'Activité et sur un bouton, cliquez sur l' OnClickListener() vous voulez passer d'une Activité à l'autre alors ...

  1. PresentActivity -- C'est votre activité actuelle à partir de laquelle vous voulez aller à la deuxième activité.

  2. NextActivity -- C'est votre prochaine Activité à laquelle vous souhaitez déplacer (Il peut contenir n'importe quoi, comme vous dites boîte de dialogue).

Donc, l'Intention sera comme ceci

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é à clic de bouton, vous pouvez utiliser le code n'importe où qui est écrit à l'intérieur de bouton, cliquez sur l' OnClickListener() à n'importe quel endroit où vous souhaitez basculer entre vos activités.

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