IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Chargement ListView bloquer les clics


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Par défaut Chargement ListView bloquer les clics
    Bonjour,

    j'ai un soucis sur la gestion du chargement d'une activité lourde (contact).

    Le problème c'est que je lance l'activité et celle-ci charge les contact dans une liste view dans le onCreate().

    Cependant si l'utilisateur perd patience et click il va automatiquement sélectionner un élément de la listView et sortir de la vue.

    (La sélection d'un contact retourne à la vue principale).

    Voila le code que j'ai pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
        	super.onCreate(savedInstanceState);
        	setContentView(R.layout.contact_preview);
        	m_listView = (ListView) findViewById(R.id.listImage);
     
        	// Set the listview !!
    		m_adapter = new ContactAdapter(this);
    		m_listView.setAdapter(m_adapter);
     
    		// This method get contact from system and set the result in the m_listContact list.
    		getContact();	
    		m_adapter.setListFile(m_listContact);
    		m_adapter.notifyDataSetChanged();
    		m_listView.setOnItemClickListener(contactListener);
        }
    Quelques conseils ?

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 108
    Par défaut
    Bonjour,

    vous pourriez peut être ajouter un dialog de chargement ?

    Avec quelque chose de ce type la : Ici

    (J'ai pris un blog au hasard qui parle des progressDialog)

    ICI tu as la doc officielle sur les progressDialog

    et ici un topic google sur les dialog en général.

    En espérant que cela t'aide.

  3. #3
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Par défaut
    Oui c'est une bonne piste.

    J'essaye ça dès que j'ai un peu de temps libre et je te donne un feedback

    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour manticore,

    Le plus simple serait de "bloquer" la méthode onClick tant que le chargement n'est pas finie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    onClick(View v){
         if(loadIsFinished){
              // Ici on peut gérer l'évènement du click, si la liste a complèetement chargé!
         }
    }

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Par défaut
    Alors j'ai résolu mon problème, mais je trouve que c'est sale :

    Dans le onCreate(), je crée un progressDialogue que j'enlève à la fin du create.

    Donc il ne s'affiche jamais, mais il bloque les clicks pendant le chargement ce qui évite que si l'utilisateur click sur l'écran pendant le chargement. Le contact de la liste soit sélectionné.

    C'est pas très propre, mais c'est la seule méthode que j'ai trouvé. Avec la technique du boolean ça ne marche pas car :

    - Appel de la méthode create (bloqué)
    - Fin de la méthode create (onblock)
    - Click de l'utilisateur est envoyé à ce moment même si il à été fait avant.

    Merci

  6. #6
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 108
    Par défaut
    Pourquoi ne pas afficher le dialog si ton chargement prend du temps ?

    L'utilisateur verrais alors quelque chose se passer, car je pense que de ton cas, l’écran ne répond pas pendant le chargement ?

    Si cette méthode te convient c'est toi qui vois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MVVM] Affichage bloquer chargement listview
    Par cool17 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 09/04/2013, 08h09
  2. bloquer les clics souris
    Par vynsse dans le forum Windows
    Réponses: 2
    Dernier message: 25/05/2007, 11h43
  3. Bloquer les clics sur une fenêtre
    Par Enzololo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/05/2006, 22h12
  4. [débutant] Listview et double-clic
    Par Runlevel dans le forum C++Builder
    Réponses: 12
    Dernier message: 29/06/2004, 19h44
  5. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo