Exemples de code Android

Gestionnaire d'événement dans l'activité principale qui implémente la classe écouteur

Cet exemple utilise la classe principale elle-même comme gestionnaire d'événements. Il n'y a qu'à lui faire implémenter l'interface View.OnClickListener et lui faire redéfinir la méthode onClick.

MainActivity.java

package net.codeandroid.couleur4;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.Random;

// Affiche une couleur aléatoire lorsque l'on clique sur un bouton (utilisation
// de l'activité elle-même comme gestionnaire d'événement).
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    // zone d'affichage de la couleur
    private View mZoneCouleur;
    // couleurs disponibles
    private int[] mCouleur = {
            Color.BLACK, Color.BLUE, Color.CYAN, Color.DKGRAY,
            Color.GRAY, Color.GREEN, Color.LTGRAY, Color.MAGENTA,
            Color.RED, Color.WHITE, Color.YELLOW};

    // point d'entrée de l'application
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // chargement de la mise en page
        setContentView(R.layout.activity_main);

        // récupération des composants depuis le fichier de mise en page
        mZoneCouleur = findViewById(R.id.zone_couleur);
        Button bouton = (Button) findViewById(R.id.bouton);

        // le gestionnaire de l'événement est l'activité elle-même
        bouton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // choisit aléatoirement une couleur
        Random generator = new Random();
        int index = generator.nextInt(mCouleur.length);

        // change la couleur d'arrière-plan de la vue
        mZoneCouleur.setBackgroundColor(mCouleur[index]);
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/bouton"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="@string/label_bouton"/>
    <TextView
        android:id="@+id/zone_couleur"
        android:layout_height="match_parent"
        android:layout_width="match_parent"/>
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Couleur 4</string>
    <string name="label_bouton">Couleur magique</string>
</resources>