Dialogue, Toasts, Boutons et Log

Forcer la saisie numérique dans un text view :

           tvTxtPrix  = (TextView) findViewById(R.id.Prixmaxi);  
           tvTxtPrix.setRawInputType(InputType.TYPE_CLASS_NUMBER);  

Pour créer et afficher une boite de dialogue (Alert) :

 AlertDialog.Builder alert = new AlertDialog.Builder(this);  
 alert.setTitle("Titre");  
 alert.setMessage("Message");  
 final EditText input = new EditText(this);  
 //-- Pour forcer la saisie numérique (à retirer pour la saisie de texte) 
 input.setInputType(InputType.TYPE_CLASS_NUMBER);   
 alert.setView(input);   
 //-- Traitement bouton Ok  
 alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
 public void onClick(DialogInterface dialog, int whichButton) {  
       Variable = (input.getText().toString());  
       //-- Traitemnt  
      });  
 //-- Traitement bouton annueler  
 alert.setNegativeButton("Annuler", new DialogInterface.OnClickListener() {  
       public void onClick(DialogInterface dialog, int whichButton) {  
        // Annulation   
       }  
      });  
 //-- Nécessaire pour afficher la boite  
 alert.show();   

Pour quitter le layout si l’utilisateur appuie sur la touche retour :

  AlertDialog.Builder diagwindow = new AlertDialog.Builder(context);
  //-- Back key pressed
   diagwindow.setOnDismissListener(new OnDismissListener() {
 @Override
 public void onDismiss(DialogInterface dialog) {
 finish(); // to finish Activity on which dialog is displayed
 }
 }); 

Ou plus rapidement :

  new AlertDialog.Builder(MainActivity.this,R.style.AlertDialogCustom)  
           .setMessage(getResources().getString(R.string.lib_sup_all))  
           .setCancelable(false)  
           .setPositiveButton(getResources().getString(R.string.Button_Delete), new DialogInterface.OnClickListener() {  
             public void onClick(DialogInterface dialog, int id) {  
               //-- Action...  
               finish();  
             }  
           })  
           .setNegativeButton(getResources().getString(R.string.lib_non), null)  
           .show();  

Dans le cas d’une custom Dialog Box :

//-- Create a Custom Dialog component  
     final Dialog dialog = new Dialog(context);  
//-- tell the Dialog to use the dialog.xml as it's layout description  
     dialog.setContentView(R.layout.dialog);  
     dialog.setTitle("Titre");  
//-- when back-key is pressed on dialog  
     dialog.setOnDismissListener(new OnDismissListener() {  
     @Override  
     public void onDismiss(DialogInterface dialog) {  
                   finish();  //to finish Activity on which dialog is displayed                           
      }  
               });       

Pour une simple boite d’alerte avec l’icône de l’application :

       AlertDialog.Builder alert = new AlertDialog.Builder(this);   
       alert.setIcon(-1).(R.drawable.ic_launcher);  
       alert.setTitle("PAS DE MUSIQUE");   
       alert.setMessage("Téléchargez des musiques sur votre carte SD SVP !");    
       //-- Traitement bouton Ok   
       alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {   
       public void onClick(DialogInterface dialog, int whichButton) {   
            finish();  
          }});   
       //-- Nécessaire pour afficher la boite   
       alert.show();  

dans le cas ou l’icône est un drawable :

final Drawable dIco = new BitmapDrawable(getResources(),UtilityImg.getPhoto(FicIco));
alertFin.setIcon(-1).setIcon(dIco);

pour appliquer un style à l’alert box :

AlertDialog.Builder alertFin = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogCustom);

Boite de dialogue customisée avec icône et case à cocher :

  final Dialog dialog = new Dialog(AfficList.this);  
         dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);  
         dialog.setContentView(R.layout.dialog_detail);  
         dialog.setTitle(name);  
         dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, idIco); //R.drawable.icon  
         // set the custom dialog components - text, image and button  
         TextView textName = (TextView) dialog.findViewById(R.id.nomContact);  
         textName.setText(name);  
         TextView textNum = (TextView) dialog.findViewById(R.id.numContact);  
         textNum.setText(num);  
         final CheckBox checkBox = (CheckBox) dialog.findViewById(R.id.checkLog);  
         //  
         checkBox.setChecked(isLog);  
         //  
         Button dialogButtonOk = (Button) dialog.findViewById(R.id.btn_ok);  
         // if button is clicked, close the custom dialog  
         dialogButtonOk.setOnClickListener(new View.OnClickListener() {  
           @Override  
           public void onClick(View v) {  
             if(checkBox.isChecked())  
               //-- on enregistre que l'on ne veut pas les logs  
               DbHelper.updateContactLog(dbNumTel,nId,true);  
             else  
               DbHelper.updateContactLog(dbNumTel, nId, false);  
             cursor.requery();  
             todoAdapter.notifyDataSetChanged();  
             dialog.dismiss();  
           }  
         });  
         Button dialogButtonDelete = (Button) dialog.findViewById(R.id.btn_delete);  
         // if button is clicked, close the custom dialog  
         dialogButtonDelete.setOnClickListener(new View.OnClickListener() {  
           @Override  
           public void onClick(View v) {  
             if (DbHelper.deleteContact(dbNumTel, name)==1)  
             {  
               cursor.requery();  
               todoAdapter.notifyDataSetChanged();  
             }  
             dialog.dismiss();  
           }  
         });  
         dialog.show();  

Avec le Layout :

 <?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="180dp"  
   android:background="@android:color/holo_blue_bright"  
   android:orientation="vertical" >  
   <TextView  
     android:id="@+id/nomContact"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_gravity="center"  
     android:layout_margin="10dp"  
     android:text="Nom contact"  
     android:textColor="@android:color/black"  
     android:textSize="15dp"  
     android:textStyle="bold" >  
   </TextView>  
   <TextView  
     android:id="@+id/numContact"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_gravity="center"  
     android:layout_margin="10dp"  
     android:text="Numero"  
     android:textColor="@android:color/black"  
     android:textSize="15dp"  
     android:textStyle="bold" >  
   </TextView>  
   <CheckBox  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Enregistrement des appels"  
     android:id="@+id/checkLog"  
     android:layout_gravity="center_horizontal" />  
   <LinearLayout  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_gravity="center"  
     android:background="@android:color/holo_blue_bright"  
     android:orientation="horizontal" >  
     <Button  
       android:id="@+id/btn_delete"  
       android:layout_width="100dp"  
       android:layout_height="30dp"  
       android:background="@drawable/curve_white"  
       android:clickable="true"  
       android:text="Delete"  
       android:textColor="@android:color/black"  
       android:textStyle="bold" />  
     <Button  
       android:id="@+id/btn_ok"  
       android:layout_width="100dp"  
       android:layout_height="30dp"  
       android:layout_marginLeft="5dp"  
       android:background="@drawable/curve_white"  
       android:clickable="true"  
       android:text="Ok"  
       android:textColor="@android:color/black"  
       android:textStyle="bold" />  
   </LinearLayout>  
 </LinearLayout>  

Exemple de boite de dialogue contenant une liste :

      //-- Ajout dans une playlist  
           static void AjoutPlayList(final String[] outputStrArr, final Context ctx) {  
                final PlaceDataSQL placeData;  
                final SQLiteDatabase dbMusiques;  
                 final CharSequence[] items;  
                 final ArrayList<String>  tPlayList = new ArrayList<String>();  
       //-- initialisation des variables  
             Date today = Calendar.getInstance().getTime();      
             final String DateJour=today.toString();  
             placeData = new PlaceDataSQL(ctx);          
             dbMusiques = placeData.getWritableDatabase();              
       //-- Remplissage du tableau des PlayList  
       tPlayList.clear();  
       Cursor c=PlaceDataSQL.getPistes(dbMusiques, "playlist", null);  
       if (c.getCount()>0)  
        {c.moveToFirst();  
        do {             
             tPlayList.add(c.getString(0));  
         }while (c.moveToNext());        
        //-- Affichage de la boite de sélection des PlayList  
        items = tPlayList.toArray(new CharSequence[tPlayList.size()]);        
        AlertDialog.Builder builder=new AlertDialog.Builder(ctx)   
             .setTitle("Choisissez une PlayList")   
             .setIcon(R.drawable.ic_launcher)  
             .setItems(items, new DialogInterface.OnClickListener()   
             {@Override   
                  public void onClick(DialogInterface dialog, int which)   
                  {for (int i=0; i<outputStrArr.length;i++)  
                                 PlaceDataSQL.onAjoutMusicPlayList(dbMusiques, tPlayList.get(which), outputStrArr[i],DateJour);  
                  }});   
        builder.create().show();  
             }c.close();   
            }  

Autres cas : http://tausiq.wordpress.com/2012/06/16/android-alertdialog-builder-example-code/

Dialog Box customisée :

1°) Ecrire un layout qui décrira la box :

 <?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="80dp"  
   android:background="@drawable/curve_shap"  
   android:orientation="vertical" >  
   <TextView  
     android:id="@+id/txt_dia"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_gravity="center"  
     android:layout_margin="10dp"  
     android:text="Do you realy want to exit ?"  
     android:textColor="@android:color/white"  
     android:textSize="15dp"  
     android:textStyle="bold" >  
   </TextView>  
   <LinearLayout  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_gravity="center"  
     android:background="#3E80B4"  
     android:orientation="horizontal" >  
     <Button  
       android:id="@+id/btn_yes"  
       android:layout_width="100dp"  
       android:layout_height="30dp"  
       android:background="@android:color/white"  
       android:clickable="true"  
       android:text="Yes"  
       android:textColor="#5DBCD2"  
       android:textStyle="bold" />  
     <Button  
       android:id="@+id/btn_no"  
       android:layout_width="100dp"  
       android:layout_height="30dp"  
       android:layout_marginLeft="5dp"  
       android:background="@android:color/white"  
       android:clickable="true"  
       android:text="No"  
       android:textColor="#5DBCD2"  
       android:textStyle="bold" />  
   </LinearLayout>  

Avec le fichier xml curve_shap dans drawable :

 <shape xmlns:android="http://schemas.android.com/apk/res/android" >  
   <solid android:color="@android:color/holo_blue_bright" />  
   <stroke  
     android:width="2dp"  
     android:color="#ffffff" />  
   <corners  
     android:bottomLeftRadius="20dp"  
     android:bottomRightRadius="20dp"  
     android:topLeftRadius="20dp"  
     android:topRightRadius="20dp" />  
 </shape>  

 

2°) Appel de la dialog box :

           // custom dialog  
           final Dialog dialog = new Dialog(this);  
           dialog.setContentView(R.layout.custom_dialog);  
           dialog.setTitle("Title...");  
           // set the custom dialog components - text, image and button  
           TextView text = (TextView) dialog.findViewById(R.id.txt_dia);  
           text.setText("Android custom dialog example!");  
           ;  
           Button dialogButton = (Button) dialog.findViewById(R.id.btn_yes);  
           // if button is clicked, close the custom dialog  
           dialogButton.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                     dialog.dismiss();  
                }  
           });  
           dialog.show();  

 Références :

http://examples.javacodegeeks.com/android/core/ui/dialog/android-custom-dialog-example/

http://androidexample.com/Custom_Dialog_-_Android_Example/index.php?view=article_discription&aid=88&aaid=111

 

Pour un message bref (Toast) :

Durée brève : Toast.makeText(MainActivity.this, « Message à afficher », Toast.LENGTH_SHORT).show();

Durée longue : Toast.LENGTH_LONG

Durée autre :

private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds

Pour afficher des messages dans la fenêtre LogCat d'Eclipse :
Log.i("message") 

Pour récupérer le click sur un bouton :

 public class Mtest extends Activity {  
  Button b1;  
  Button b2;  
  public void onCreate(Bundle savedInstanceState) {  
   ...  
   b1 = (Button) findViewById(R.id.b1);  
   b2 = (Button) findViewById(R.id.b2);  
   b1.setOnClickListener(myhandler1);  
   b2.setOnClickListener(myhandler2);  
   ...  
  }  
  View.OnClickListener myhandler1 = new View.OnClickListener() {  
   public void onClick(View v) {  
    // it was the 1st button  
   }  
  };  
  View.OnClickListener myhandler2 = new View.OnClickListener() {  
   public void onClick(View v) {  
    // it was the 2nd button  
   }  
  };  
 }  

Pour changer le texte d’un bouton : buttonTous.setText(« Tous »);

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Articles récents
Commentaires récents
fatima sur Bienvenue !
AdminDroid sur Bienvenue !
fatima sur Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :