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 :

Vider TableLayout déclaré dans le layout de l'Activity


Sujet :

Composants graphiques Android

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Vider TableLayout déclaré dans le layout de l'Activity
    Bonjour, j'ai créé un TableLayout qui est remplie via des données récupérées sur internet et je donne la possibilité à l'utilisateur de rafraîchir ses données mais le problème est qu'elle s'ajoutent à la suite de celles présentes alors que je voudrais vider mon TableLayout avant.

    J'ai regardé les méthodes disponibles et aucune ne permet de le faire, j'ai également pensé à attribuer la valeur null ou de créer un nouveau TableLayout mais comme je récupère celui déclaré dans mon layout, ce n'est pas possible..

    Quel moyen ai-je?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour

    Un tutoriel sur le sujet :
    http://mathias-seguy.developpez.com/...amique/#L3-2-3

    Il faut tout d'abord détruire le contenu de votre layout puis le reconstruire. La méthode à utiliser pour la destruction du contenu de votre layout est removeAllViewsInLayout(); (la méthode removeAllViews() ne marche pas). Un grand merci à Yan Verdavaine de développez.com pour m'avoir ouvert les yeux. Encore une fois, merci Monsieur.

    Ensuite, il vous suffit d'ajouter vos composants à ce layout. Votre IHM sera mise à jour automatiquement.

    Ce qui donne :

    // Tout d'abord, il faut détruire tous les éléments contenus dans le layout.

    LinearLayout layoutOfDynamicContent = ( LinearLayout ) findViewById(R.id. layoutOfDynamicContent );

    layoutOfDynamicContent .removeAllViewsInLayout();

    //Ajouter les composants à ce layout.

    //Cf. paragraphes suivants.

    //Et c'est tout votre layout qui va être mis à jour automatiquement.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Dans l'article, il y a un passage où j'ai du mal à comprendre, il s'agit du chapitre 3-2-7.

    Il est écrit :
    //Le drawable à afficher.

    Drawable monDrawable = //Le Drawable à affecter ;

    //Affectation du composant à l'image.

    webPicture .setImageDrawable( //Le Drawable à affecter );
    Je ne sais pas de quoi il parle lorsqu'il affecte le drawable, je ne sais pas à quoi ca correspond?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Un drawable est une chose que tu peux dessiner :

    Bitmap: the simplest Drawable, a PNG or JPEG image.
    Nine Patch: an extension to the PNG format allows it to specify information about how to stretch it and place things inside of it.
    Shape: contains simple drawing commands instead of a raw bitmap, allowing it to resize better in some cases.
    Layers: a compound drawable, which draws multiple underlying drawables on top of each other.
    States: a compound drawable that selects one of a set of drawables based on its state.
    Levels: a compound drawable that selects one of a set of drawables based on its level.
    Scale: a compound drawable with a single child drawable, whose overall size is modified based on the current level.
    Donc dans ce tutoriel il te propose de récupérer un drawable pour l'afficher par la suite. A toi de savoir quel type de donnée tu veux dessiner, bitmap, nine patch, etc.

    La doc :
    http://developer.android.com/referen.../Drawable.html

    Par exemple si on veux le faire a partir d'une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Drawable draw = Drawable.createFromPath(pathimage);
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Ca a l'air un minimum pour les initiés le fait de créer la layout.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Pas vraiment

    Voici un exemple de code "template":
    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
     
    class MyActivity extends Activity
    {
        public void onCreate(Bundle savedState)
        {
             super.onCreate(savedState);
             setContentView(R.layout.mylayout);
     
             startRefreshLayout();
     
             ((Button)findViewById(R.id.refreshButton)).setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        MyActivity.this.startRefreshLayout();
                    }
               });
        }
     
        public void startRefreshLayout()
        {
             // progress bar setVisibility(VISIBLE); ?
             new LayoutRefreshTask().execute();
        }
     
        public void onLayoutData(List<LayoutData> data)
        {
             // progress bar setVisibility(GONE); ?
             if (data != null) {
                 TableLayout table = (TableLayout) findViewById(R.id.mytablelayout);
     
                 table.removeAllViews(); // <= chez moi elle marche bien la fonction... mais bon... remplacer par removeAllViewsInLayout is nécessaire
                 for (LayoutData d : data) {
                     TableRow row = new TableRow(this);
                     fillRowFromData(row,data);
                     table.add(row);
                 }
             }
         }
     
         private void fillRowFromData(TableRow row, LayoutData data)
         {
              /// le code pour remplir la row avec les données.
         }
     
     
         /// la tâche pour récupérer les données sur internet....
         class LayoutRefreshTask extends AsyncTask<...,List<LayoutData>>()
         {
               ...
               public void onPostExecute(List<LayoutData> data)
               {
                    MyActivity.this.onLayoutData(data);
               }
         }
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Variation dans une Layouts
    Par jeff_! dans le forum SharePoint
    Réponses: 0
    Dernier message: 25/07/2007, 08h43
  2. Réponses: 3
    Dernier message: 15/06/2007, 11h27
  3. Réponses: 1
    Dernier message: 13/06/2007, 18h14
  4. [Struts-Layout] TextArea dans un <layout:collection>
    Par bobic dans le forum Struts 1
    Réponses: 6
    Dernier message: 12/01/2007, 12h43
  5. Commande Update... vider certains champ dans table.
    Par angelevil dans le forum ASP
    Réponses: 3
    Dernier message: 04/05/2005, 21h08

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