• Home
  • Youzik
  • Papystreaming
  • Darknet
  • Libertyland
  • Cacaoweb
  • GG maps
  • Yggtorrent
  • Zone téléchargement

Grimag

  • Accueil
  • Catégories
    • Smartphone
    • High Tech
    • Business
    • Web
    • Appli Jeux Vidéo
    • Shopping
  • Android c’est quoi ?
  • Nous Contacter
  • Nos comparatifs
    • Drone avec caméra
    • Clavier d’ordinateur
    • Onduleur
    • GPS
    • Répéteur WiFi

Développer un loading sous android (page d’attente)



Dans ce tuto je vais mettre en place une page d’attente ou loading pour faire patienter, le temps de téléchargement de mon XML.
Pour faire cela je vais utiliser un thread, un thread permet de faire une action en parallèle de votre en action en cours.

Mes différentes variables.

          LecteurFlux objLectFlux = new LecteurFlux();
	 private ListView mRecetteList;
	 private  Context lecontext;
	 private static ArrayList> mylist;
	 protected ProgressDialog myProgressDialog; 
	 final Handler uiThreadCallback = new Handler();

D’abord je crée ma barre de progression, que je lance.

 
myProgressDialog = ProgressDialog.show(ListePlatSemaine.this,
               "", "Chargement", true);

je lance mon thread

 new Thread() {
    		    @Override public void run() {
    		     // je récupére ici dans un tableau mes données xml
                      mylist = objLectFlux.renvoi_planning("1");
    		      // appel de l'objet runnable qui s'execute a la fin du thread
                      uiThreadCallback.post(runInUIThread);
                       //j' arrete ici ma barre de progression
                       myProgressDialog.dismiss();
    		     
    		    }
    		  }.start();

J’ajoute un objet runnable qui s’execute à la fin de mon thread. Dans la méthode run de cet objet j’appelle ma méthode affiche_liste qui affiche ma listview

 final Runnable runInUIThread = new Runnable() {
    	    public void run() {
    	        //méthode qui affiche la listeview
                affiche_liste();    	     
    	    }
    	  };

il faut préciser que j’ai mis ma variable mylist en static pour une utilisation globale.
le code en entier donne

import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ListePlatSemaine extends Activity implements
AdapterView.OnItemClickListener, View.OnClickListener {

	LecteurFlux objLectFlux = new LecteurFlux();
	 private ListView mRecetteList;
	 private  Context lecontext;
	 private static ArrayList> mylist;
	 protected ProgressDialog myProgressDialog; 
	 final Handler uiThreadCallback = new Handler();

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       lecontext =this;
       myProgressDialog = ProgressDialog.show(ListePlatSemaine.this,
               "", "Chargement", true); 
       
       
       final Runnable runInUIThread = new Runnable() {
    	    public void run() {
    	     affiche_liste();    	     
    	    }
    	  };

    	  new Thread() {
    		    @Override public void run() {
    		      mylist = objLectFlux.renvoi_list();
    		      myProgressDialog.dismiss();
    		      uiThreadCallback.post(runInUIThread);
    		    }
    		  }.start();

      
            
   }
   
   public void affiche_liste(){
	   
	    setContentView(R.layout.liste1);
	    mRecetteList = (ListView) findViewById(android.R.id.list);
	    SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.afficheplanning,
	             new String[] {"train", "from"}, new int[] {R.id.date, R.id.recette});
       //setListAdapter(new SpeechListAdapter(this));
	     mRecetteList.setAdapter(mSchedule);
        mRecetteList.setOnItemClickListener(this);
   }
   
   public void onItemClick(AdapterView parent, View v, int position, long id) {
	      //click sur la liste view
	   		Intent defineIntent = new Intent(lecontext,AfficheRecette.class);
	   		//lecontext.startActivity(defineIntent);
	   		
	   		HashMap aTableau= mylist.get(position);
	   		
	   	 Bundle b = new Bundle(); 
          b.putString("Titre",aTableau.get("train")+"\n"+aTableau.get("from")); 
         b.putString("ingredient",aTableau.get("ingredient"));
         b.putString("preparation",aTableau.get("preparation"));
         defineIntent.putExtras(b); 
         lecontext.startActivity(defineIntent);
	   		
	    }
   
   public void onClick(View v) {
   	int u=0;
   }
   
	
}

Résultat
attente1 attente2

Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo

Juil 21, 2009Gnakouri Danon


Samsung Galaxy i7500 vu sur tous les anglesLe Sony Ericsson Rachael en pré-vente chez expansys - Xperia 3 sous Android se précise
Gnakouri Danon

Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

21 juillet 2009 Developpement, Tuto développementchargement, loading, page d'attente, thread2,341

2023 © Android-France