Travaillons avec les Toast et les boîtes de dialogue
Avant de
commence cet atelier, nous avons besoin à définir le terme Toast.
Selon l’encyclopédie
http://www.linternaute.com, Toast une tranche
de
pain
grillée.
On l’utilise
dans les applications Android pour communiquer une information intuitive, voir l’exemple ci-dessous :
Pour la
démonstration de cet atelier, nous avons besoin à créer une seule activité avec
plusieurs boutons, chaque bouton associé à un Toast ou une boîte de dialogue.
Bouton 1 :
affiche un toast pour une duré très légère ;
Bouton 2 :
affiche un toast pour une duré moins légère ;
Bouton 3 :
affiche une boîte de dialogue avec un seul bouton ;
Bouton 4 :
affiche une boîte de dialogue avec deux boutons ;
Bouton 5 :
affiche une boîte de dialogue avec trois seul boutons et une zone de saisie.
Au début,
nous commençons par la mise en forme du formulaire main.xml sous format
graphique comme suit :
Le code
équivalent de cette présentation est le suivant :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/b1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Afficher Toast
leger" />
<Button
android:id="@+id/b2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Afficher Toast
dure" />
<Button
android:id="@+id/b3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Afficher
boite de dialogue 1" />
<Button
android:id="@+id/b4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Afficher
boite de dialogue 2" android:isScrollContainer="true"/>
<Button
android:id="@+id/b5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Afficher
boite de dialogue 3" />
</LinearLayout>
Après le
fichier de présentation, nous proposons le fichier java associé à notre présentation :
package
com.formation.toast_dial;
import
android.app.Activity;
import
android.app.AlertDialog;
import
android.content.DialogInterface;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Toast;
public class Main extends Activity
implements OnClickListener {
/** Called when the activity is first created. */
Button b1,b2,b3,b4,b5;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// La référence des boutons
b1=(Button)findViewById(R.id.b1);
b2=(Button)findViewById(R.id.b2);
b3=(Button)findViewById(R.id.b3);
b4=(Button)findViewById(R.id.b4);
b5=(Button)findViewById(R.id.b5);
// La gestion
des événements des boutons
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
}
// les actions après la
clique des boutons
public void onClick(View
arg0) {
switch(arg0.getId()){
case R.id.b1:
Toast.makeText(this, "Toast courte duré", Toast.LENGTH_SHORT).show();
break;
case R.id.b2:
Toast.makeText(this, "Toast longue duré", Toast.LENGTH_SHORT).show();
break;
case R.id.b3:
AlertDialog.Builder boite;
boite = new AlertDialog.Builder(this);
boite.setTitle("boite de
dialogue 1");
boite.setIcon(R.drawable.ic_launcher);
boite.setMessage("Message
de la 1ere boite");
boite.setPositiveButton("Oui", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}
}
);
boite.show();
break;
case R.id.b4:
AlertDialog.Builder boite2;
boite2 = new AlertDialog.Builder(this);
boite2.setTitle("boite de
dialogue 2");
boite2.setIcon(R.drawable.ic_launcher);
boite2.setMessage("Message
de la 2eme boite");
boite2.setPositiveButton("Oui", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}
}
);
boite2.setNeutralButton("Ignorer", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}
}
);
boite2.setNegativeButton("Non", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}
}
);
boite2.show();
break;
case R.id.b5:
AlertDialog.Builder boite3;
final EditText input = new EditText(this);
boite3 = new AlertDialog.Builder(this);
boite3.setView(input);
boite3.setTitle("boite de
dialogue 3");
boite3.setIcon(R.drawable.ic_launcher);
boite3.setMessage("Message
de la 3eme boite");
boite3.setPositiveButton("Oui", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}
}
);
boite3.setNeutralButton("Ignorer", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
}});
boite3.setNegativeButton("Non", new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
//Récupération de la
valeur renseignée dans la boite du
dialogue
String value = input.getText().toString();
}
}
);
boite3.show();
break;
}
}
}
Voila, notre
application est complète, il nous reste à voir les fruits de notre travail par
son exécution sur l’émulateur.
Vous pouvez télécharger
le code source de cet atelier en cliquant ici.
Pour le deuxième Toast, tu as mis LENGTH_SHORT alors que c'est le long ;)
RépondreSupprimerbjr
RépondreSupprimercomment faire sans le case une seule boite de dialogue?
Pour une seule boite http://vogella.developpez.com/tutoriels/android/utiliser-dialogues/
RépondreSupprimerPour une seule boite http://vogella.developpez.com/tutoriels/android/utiliser-dialogues/
RépondreSupprimer