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 :

ListView Dynamique, je bloque.


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut ListView Dynamique, je bloque.
    Bonjour,,
    Ce n'est pas très original, mais je n'arrive pas à trouver la solution même en cherchant sur internet.
    Je ne me fais pas d'illusion, je suis un débutant débutant depuis houlala, mais toujours aussi nul.

    Le but c'est d'afficher ma listView, une fois que les 2 EditText soit renseignés.
    Je vous joints le code, je pense que cela vous sera utile ...

    code MainActivity. java
    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
    56
     
     
    public class MainActivity extends Activity {
     
     
      //  ArrayList<String> list = new ArrayList<>();
        String mot1 = "";
        String value;
     
     
        private Quiz adapter;
     
     
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
     
            setContentView(R.layout.activity_main);
     
     
            Button btn = (Button) findViewById(R.id.btnAdd);
     
     
            OnClickListener listener = new OnClickListener() {
                @Override
                public void onClick(View v) {
                    EditText edit = (EditText) findViewById(R.id.txtItem);
                    EditText edit2 = (EditText)findViewById(R.id.txtItem2);
                    TextView tv1 = (TextView)findViewById(R.id.tv_1);
                    TextView tv2 = (TextView)findViewById(R.id.tv_2);
     
                    mot1 = edit.getText().toString();
                    value = edit2.getText().toString();
     
                   tv1.setText (edit.getText().toString()) ;
                    tv2.setText(edit2.getText().toString());
     
                  adapter = new Quiz(this,R.layout.list_items,
                          new ArrayList<Quiz>());
                    ListView mylist = (ListView)findViewById(R.id.list);
                    mylist.setAdapter((ListAdapter) adapter);
     
                    adapter.insert( new Quiz( edit,edit2), 0);
                }
            };
     
            /*
            Setting the event listener for the add button
            btn.setOnClickListener(listener);
     
           Setting the adapter to the ListView
            setListAdapter(adapter);
     
        }*/
    Code Class
    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
    public class Quiz implements Serializable {
     
        private EditText mot1;
        private String value;
      //  private String corrige ="";
     
        public Quiz(EditText mot1, EditText value) {
            this.setMot1(mot1);
            this.setValue(value);
        }
     
        public Quiz(View.OnClickListener onClickListener, int list_items, ArrayList<Quiz> quizs) {
     
        }
     
        public String getMot1() {
            return String.valueOf(mot1);
        }
     
        public void setMot1(EditText mot1) {
            this.mot1 = mot1;
        }
     
        public String getValue () {
            return String.valueOf(value);
        }
     
        public void setValue(EditText value) {
            this.value = String.valueOf(value);
        }
     
        public void insert(Quiz quiz, int i) {
     
        }
    }
    Merci à vous .

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut

    Qu'est-il censé se passer lorsque tu cliques sur le bouton ?

  3. #3
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Citation Envoyé par Drowan Voir le message

    Qu'est-il censé se passer lorsque tu cliques sur le bouton ?

    Les mots entrés dans les EditText doivent s'afficher dans la ListView,
    Et je recommence un mot dans un EditText, un mot dans le 2eme EditText,
    ainsi de suite, jusqu'à une limite qui sera fixée.

    Merci pour la réponse

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut
    salut,

    Donc tu nous dit que que lorsque tes 2 EditText sont remplie et que tu appuie sur le boutton, ils sont censé s'afficher dans ta Listview, dans ce cas a quoi sert les TextView que tu as placé dans ton code ??

    Ensuite pour que lorsque un click sur le boutton, le code est généralement ceci :
    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
            Button btn = (Button) findViewById(R.id.btnAdd);
            btn.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick (View v)
                {
                    EditText edit = (EditText) findViewById(R.id.txtItem);
                    EditText edit2 = (EditText) findViewById(R.id.txtItem2);
                    TextView tv1 = (TextView) findViewById(R.id.tv_1);
                    TextView tv2 = (TextView) findViewById(R.id.tv_2);
     
                    mot1 = edit.getText().toString();
                    value = edit2.getText().toString();
     
                    tv1.setText(edit.getText().toString());
                    tv2.setText(edit2.getText().toString());
     
                    adapter = new Quiz(this, R.layout.list_items, new ArrayList<Quiz>());
                    ListView mylist = (ListView) findViewById(R.id.list);
                    mylist.setAdapter((ListAdapter) adapter);
     
                    adapter.insert(new Quiz(edit, edit2), 0);
     
                }
            });
    Puis je vois que tu as un donc crée un custom adapter (ta class quizz), pourquoi pas, bien que ça ne sert pas a grand chose dans ton cas.
    Mais vue ton niveau pour l'instant je te dirai d'utiliser juste le classe ArrayAdapter, qui s'utilise comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, list)
    Le 1er parametre est le Context, le second est le layout, celui que j'ai utilisé est un layout déja fabriqué par android donc pas besoin de le crée et le 3 et ta list qui est censé etre de type ArrayList<String.

    Ce que tu peux donc faire c'est que une fois que tu as cliquer sur le boutton pour ajouter les elements a ta ListView, tu récupere ce que tu as écris et tu l'ajoute a ta list avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    EditText edit = (EditText) findViewById(R.id.txtItem);
    EditText edit2 = (EditText) findViewById(R.id.txtItem2);
     
    mot1 = edit.getText().toString();
    value = edit2.getText().toString();
     
    list.add(mot1);
    list.add(value);
    ensuite tu peux set ton Adapter, et lorsque tu veux actualiser ta list tu fait ajoute donc tes elements a ta list et tu fait :

    adapter. notifyDataSetChanged();

  5. #5
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Merci pour la réponse et les conseils...
    .

    Mes TextView sont (enfin je le pensais) pour faire le modèle d'une ligne de ma listView
    Je suis un grand débutant et c'est en piochant un peu partout que j'ai fait ce début de code.

    Je vais me mettre à travailler sur vos conseils et je reviends au cas ou ...
    A+

    encore merci

  6. #6
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Bonjour,

    Voilà, après quelques heures à merdoyer dans la semoule, j'ai réussi à faire afficher quelque sur ma listView.

    Je me suis aperçu de trucs qui me gêne :
    les "EditText" s'inscrivent dans la list les uns sous les autres, alors que le but est qu'ils soient sur la même ligne.

    Ensuite, lorsque je recommence l'opération, les nouveaux "EditText" remplacent les anciens sur la liste au lieu de s'ajouter.

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
     
    import java.util.ArrayList;
     
     
    public class MainActivity extends Activity {
     
        /** Items entered by the user is stored in this ArrayList variable */
      //  ArrayList<String> list = new ArrayList<>();
        String mot1;
        String value;
        ListView mylist;
        ArrayList<String> list = new ArrayList<String>();
     
     /** Declaring an ArrayAdapter to set items to ListView */
       // private Quiz adapter;
     
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            EditText edit = (EditText) findViewById(R.id.txtItem);
            EditText edit2 = (EditText) findViewById(R.id.txtItem2);
            TextView tv1 = (TextView) findViewById(R.id.tv_1);
            TextView tv2 = (TextView) findViewById(R.id.tv_2);
     
     
            /*     ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout., list);
                    ListView list = (ListView) findViewById(R.id.list);
                    list.setAdapter( (ListAdapter) adapter);
                    */
     
            Button btn = (Button) findViewById(R.id.btnAdd);
            btn.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick (View v)
                {
                    ArrayList<String> list = new ArrayList<String>();
     
                    EditText edit = (EditText) findViewById(R.id.txtItem);
                    EditText edit2 = (EditText) findViewById(R.id.txtItem2);
     
                    mot1 = edit.getText().toString();
                    value = edit2.getText().toString();
     
     
                    ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, list);
     
                   // adapter = new Quiz(this, R.layout.list_items, new ArrayList<Quiz>());
                    ListView mylist = (ListView) findViewById(R.id.list);
                    mylist.setAdapter((ListAdapter) adapter);
     
                    list.add(mot1);
                    list.add(value);
     
                    adapter.notifyDataSetChanged();
                    edit.setText("");
                    edit2.setText("");

    A la ligne 60, j'ai essayé de mettre :
    ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,R.layout.list_item, list);
    Mais il me demandait les TextView.
    J'ai essayé mais j'ai réussi qu'à mettre le bazard dans le code ...

    C'est pourtant par cette solution qu'il faut passer pour avoir mes lignes avec mes 2 (ou 3 ) éléments.

    Merci
    A +

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

Discussions similaires

  1. comment remplir une listview dynamiquement ?
    Par azert2010 dans le forum C#
    Réponses: 0
    Dernier message: 20/05/2011, 03h12
  2. Modification des paramètres du contenu d'une ListView dynamique
    Par Bisûnûrs dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 13/10/2010, 21h46
  3. Réponses: 8
    Dernier message: 11/03/2009, 17h38
  4. ListView dynamique, problème de hauteur
    Par tatayet_le_felee dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/10/2008, 09h30
  5. Remplir Listview dynamiquement?'?
    Par sabfix dans le forum C#
    Réponses: 5
    Dernier message: 04/03/2008, 09h04

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