Exemples de code Android

Dialogue sur mesure

Ceci est un exemple de dialogue "sur mesure" (on dit en anglais "custom dialog"). Ce type de dialogue n'a pas une apparence prédéfinie par Android, mais est basé sur son propre fichier de mise en page.

MainActivity.java

package net.codeandroid.dialoguesurmesure;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    final Context mContexte = this;
    private Button mBouton;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mBouton = (Button) findViewById(R.id.boutonDialogue);

        mBouton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View vue) {

                // dialogue sur mesure
                final Dialog dialog = new Dialog(mContexte);
                dialog.setContentView(R.layout.custom);
                dialog.setTitle("Exemple de dialogue sur mesure");

                // réglage des composants du dialogue sur mesure
                TextView texte = (TextView) dialog.findViewById(R.id.texte);
                texte.setText("I live in a happy little chalet !");

                ImageView image = (ImageView) dialog.findViewById(R.id.image);
                image.setImageResource(R.drawable.bob_ross);

                Button dialogButton = (Button) dialog.findViewById(R.id.btnOk);

                // ferme le dialogue par un clic sur le bouton
                dialogButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View vue) {
                        dialog.dismiss();
                    }
                });

                dialog.show();
            }
        });
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <Button
        android:id="@+id/boutonDialogue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Afficher le dialogue" />

</LinearLayout>

custom.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_margin="20dp"
    android:padding="20dp"
    android:background="#FFEEEEEE">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/texte"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="35sp"/>

    <Button
        android:id="@+id/btnOk"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Ok"/>

</LinearLayout>