web-dev-qa-db-fra.com

Comment créer un bouton dans Kotlin qui ouvre une nouvelle activité (Android Studio)?

Bonjour, je crée une application en utilisant Android Studio et le langage Kotlin et j'ai du mal à obtenir mon bouton pour ouvrir une nouvelle activité. J'ai le bouton créé dans mon fichier xml mais je ne peux pas trouver la syntaxe KOTLIN pour savoir comment la déclarer dans MainActivity.kt et comment créer le OnClicklistener qui m'amènerait à la nouvelle activité. J'ai également la nouvelle activité définie dans le manifeste. passer de MainActivity.kt à secondActivity.kt. Toute aide est appréciée.

9
Nutters

Vous pouvez ajouter un écouteur d'événement onclick comme ci-dessous.

 button1.setOnClickListener(object: View.OnClickListener {
    override fun onClick(view: View): Unit {
        // Handler code here.
        val intent = Intent(context, DestActivity::class.Java);
        startActivity(intent);
    }
})

Ou vous pouvez utiliser un formulaire simplifié

   button1.setOnClickListener {
    // Handler code here.
    val intent = Intent(context, DestActivity::class.Java)
    startActivity(intent);
   }
13
Jayanth

Bouton dans le fichier xml de mise en page

        <Button
            Android:id="@+id/btn_start_new_activity"
            Android:text="New Activity"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content" />

Pour le déclarer dans le fichier d'activité Kotlin

var btn_new_activity = findViewById(R.id.btn_start_new_activity) as Button

Réglez Onclicklistener sur le bouton, pour démarrer une nouvelle activité lorsque le bouton est cliqué

    btn_new_activity.setOnClickListener {
        val intent = Intent(context, NewActivity::class.Java)
        startActivity(intent);
    }

Référence: Tutoriel Android Studio - https://www.youtube.com/watch?v=7AcIGyugR7M

5
Mallikarjun M

Je vous recommande d'utiliser l'extension Anko - pour Kotlin https://github.com/Kotlin/anko . Il vous permet d'utiliser l'intention (et bien d'autres choses) de la manière la plus courte. Dans votre cas, ce sera:

button {
        onClick { startActivity<SecondActivity>() }
    }
3
Kirill Bitkov