Dans une application Android, comment démarrer une nouvelle activité (GUI) lorsqu'un utilisateur clique sur un bouton d'une autre activité et comment transmettre des données entre ces deux activités?
627
Dans une application Android, comment démarrer une nouvelle activité (GUI) lorsqu'un utilisateur clique sur un bouton d'une autre activité et comment transmettre des données entre ces deux activités?
Facile.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Les extras sont récupérés de l'autre côté via:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
N'oubliez pas d'ajouter votre nouvelle activité dans AndroidManifest.xml:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
etstartActivity(myIntent)
?Créez une intention pour une activité ViewPerson et transmettez le PersonID (pour une recherche de base de données, par exemple).
Ensuite, dans ViewPerson Activity, vous pouvez obtenir le paquet de données supplémentaires, assurez-vous qu'il n'est pas nul (au cas où vous ne transmettez parfois pas de données), puis récupérez les données.
Maintenant, si vous devez partager des données entre deux activités, vous pouvez également avoir un singleton global.
Appelez-le ensuite dans n'importe quelle activité en:
la source
Les réponses actuelles sont excellentes mais une réponse plus complète est nécessaire pour les débutants. Il existe 3 façons différentes de démarrer une nouvelle activité dans Android, et ils utilisent tous la
Intent
classe; Intention | Développeurs Android .onClick
attribut du bouton. (Débutant)OnClickListener()
via une classe anonyme. (Intermédiaire)switch
instruction. (Pro)Voici le lien vers mon exemple si vous souhaitez suivre:
1. Utilisation du
onClick
attribut du bouton. (Débutant)Les boutons ont un
onClick
attribut qui se trouve dans le fichier .xml:En classe Java:
Avantage : facile à réaliser à la volée, modulaire et peut facilement définir plusieurs
onClick
s pour la même intention.Inconvénient : lisibilité difficile lors de la révision.
2. Attribuer un
OnClickListener()
via une classe anonyme. (Intermédiaire)C'est lorsque vous définissez un séparé
setOnClickListener()
pour chacunbutton
et remplacez chacunonClick()
avec sa propre intention.En classe Java:
Avantage : facile à réaliser à la volée.
Inconvénient : il y aura beaucoup de classes anonymes qui rendront la lisibilité difficile lors de la révision.
3. Méthode d'interface à l'échelle de l'activité utilisant l'
switch
instruction. (Pro)C'est lorsque vous utilisez une
switch
instruction pour vos boutons dans leonClick()
méthode pour gérer tous les boutons de l'activité.En classe Java:
Avantage : gestion facile des boutons car toutes les intentions des boutons sont enregistrées dans une seule
onClick()
méthodePour la deuxième partie de la question, la transmission de données, veuillez consulter Comment puis-je transmettre des données entre les activités dans l'application Android?
la source
Lorsque l'utilisateur clique sur le bouton, directement à l'intérieur du XML comme ça:
En utilisant l'attribut,
android:onClick
nous déclarons le nom de la méthode qui doit être présent sur l'activité parent. Je dois donc créer cette méthode au sein de notre activité comme ça:la source
la source
la source
Emmanuel,
Je pense que les informations supplémentaires doivent être mises avant de commencer l'activité, sinon les données ne seront pas encore disponibles si vous y accédez dans la méthode onCreate de NextActivity.
la source
À partir de l'activité d'envoi, essayez le code suivant
À partir de l'activité de réception, essayez le code suivant:
Ensuite, ajoutez simplement le code suivant au fichier AndroidManifest.xml
la source
la source
Essayez cette méthode simple.
la source
Vous pouvez essayer ce code:
la source
La façon de démarrer de nouvelles activités consiste à diffuser une intention, et il existe un type spécifique d'intention que vous pouvez utiliser pour transmettre des données d'une activité à une autre. Ma recommandation est de consulter les documents des développeurs Android liés aux intentions ; c'est une mine d'informations sur le sujet, et a aussi des exemples.
la source
Kotlin
Première activité
Deuxième activité
Suggestion
Mettez toujours les clés dans un fichier constant pour une manière plus gérée.
la source
Le démarrage d'une activité à partir d'une autre activité est un scénario très courant parmi les applications Android.
Pour démarrer une activité, vous avez besoin d'un objet Intent .
Comment créer des objets d'intention?
Un objet d'intention prend deux paramètres dans son constructeur
Par exemple, si vous avez deux activités, dites
HomeActivity
etDetailActivity
et vous voulez commencer à partirDetailActivity
deHomeActivity
(HomeActivity -> DetailActivity).Voici l'extrait de code qui montre comment démarrer DetailActivity à partir de
Et vous avez terminé.
la source
Démarrez une autre activité à partir de cette activité et vous pouvez également passer des paramètres via Bundle Object.
Retrouver des données dans une autre activité (YourActivity)
la source
Implémentez l'interface View.OnClickListener et remplacez la méthode onClick.
la source
Bien que des réponses appropriées aient déjà été fournies, je suis ici pour chercher la réponse dans la langue Kotlin. Cette question n'est pas spécifique au langage, donc j'ajoute le code pour accomplir cette tâche en langage Kotlin.
Voici comment faire cela à Kotlin pour andorid
la source
Le moyen le plus simple d'ouvrir une activité en cliquant sur un bouton est:
onclick
fonction.MainActivity.java
SecondActivity.java
AndroidManifest.xml (il suffit d'ajouter ce bloc de code à l'existant)
la source
Prenez le bouton en xml en premier.
Faire lister le bouton.
la source
Lorsque le bouton est cliqué:
Pour recevoir les données supplémentaires de
NextActivity.class
:la source
Écrivez le code dans votre première activité.
Dans secondActivity.class
la source
Placer le widget de bouton en xml comme ci-dessous
Après cela, initialisez et gérez l'écouteur de clic dans l'activité comme ci-dessous.
Dans la méthode Activity On Create:
la source