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>