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 :

Modification d'un TextView associé à un Spinner


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut Modification d'un TextView associé à un Spinner
    J'ai développé une application dont une des activités est :

    Nom : image.png
Affichages : 153
Taille : 86,7 Ko

    La liste affichée est basée sur un RecyclerView.
    Comme vous pouvez le voir, la 3ème ligne, de couleur verte (à droite), signifie qu'une mise en jour a été effectuée.
    Lorsque l'on appuie sur le FAB (en bas), l'application envoie les données vers le serveur afin de mettre à jour la base de données.
    Je souhaite alors changer la couleur verte en couleur rouge afin de montrer que la base de données en identique à ce qui est présenté.
    C'est cela que je n'arrive pas à faire.
    Ci après le code associé à la méthode onClick de mon FAB.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
            pFloatingActionButtonMaj.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    pProgressBar.setVisibility(View.VISIBLE);
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            final ArrayList<PresenceRandonnee> lListePresenceRandonnee;
                            lListePresenceRandonnee = pItemRecyclerViewAdapter.lireListePresenceRandonnee();
                            for (int i=0;i < lListePresenceRandonnee.size();i++) {
                                final int i_final = i;
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        pProgressBar.setProgress(100 * (i_final+1) / lListePresenceRandonnee.size());
                                    }
                                });
                                PresenceRandonnee lPresenceRandonnee = lListePresenceRandonnee.get(i);
                                if (lPresenceRandonnee.equals(pListePresenceRandonneeCopie.get(i))) {
                                }
                                else {
                                    String lURL = String.format(getString(R.string.update_URL),
                                                                lPresenceRandonnee.lireRandonneeId(),
                                                                pUserId,
                                                                lPresenceRandonnee.lirePresence());
                                    if (ecrirePresences(lURL).contains("OK")) {
                                        pListePresenceRandonneeCopie.set(i, lPresenceRandonnee);
                                        runOnUiThread(new Runnable() {
                                            @Override
                                            public void run() {
                                                (pListeTextView.get(i_final)).setTextColor(getColor(R.color.colorRed));
                                                (pListeTextView.get(i_final)).setTypeface(((TextView) (pListeTextView.get(i_final))).getTypeface(), Typeface.NORMAL);
                                            }
                                        });
                                    }
                                    else {
                                        runOnUiThread(new Runnable() {
                                            @Override
                                            public void run() {
                                                Toast.makeText(getApplicationContext(), "Mise à jour base de données impossible", Toast.LENGTH_LONG).show();
                                            }
                                        });
                                    }
                                }
                            }
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    pProgressBar.setVisibility(View.INVISIBLE);
                                }
                            });
                        }
                    }).start();
                }
    });
    La ligne qui ne fonctionne pas est celle qui est en gras et en rouge.
    Cette liste pListeTextView a été construite lors de l'appel du constructeur de mon ViewHolder de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pListeTextView.add((TextView) view);
    où view représente un TextView qui contient le texte de mon Spinner.

    Merci pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    il faut faire un pItemRecyclerViewAdapter.notifyDataSetChanged() pour lui signaler que des données ont changées.

    Après je ne suis pas fan de la facon de faire, à savoir que l'activité gère le changement de couleur de l'item. C'est le boulot de l'adapter de faire ca, puisqu'il est responsable des layouts des items.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut
    Merci
    J'essaye cela.

    J'ai bien aussi compris ta remarque.
    Comment faire ce que tu proposes ?

Discussions similaires

  1. Modification d'un TextView à partir d'une autre classe
    Par lea436 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 08/02/2012, 20h42
  2. Réponses: 3
    Dernier message: 13/09/2011, 16h42
  3. Réponses: 0
    Dernier message: 14/11/2010, 12h40
  4. Ajout/Modification de données - Evénements associés
    Par Domi2 dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/02/2008, 11h48
  5. JSP : associer un traitement à la modif d'un champ de texte
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/04/2006, 11h52

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