Partage
  • Partager sur Facebook
  • Partager sur Twitter

je n'arrive pas à corriger ...

    8 février 2016 à 16:45:48

    Bonjour,

    J'ai une erreur dans mon code, mais je n'arrive pas à la corriger ligne 32

    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.ListView;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class MainActivity extends Activity {
        ListView listview;
        Button Addbutton;
        EditText GetValue;
        EditText GetValue2;
        String[][] ListElementsArrayList = new String[][] {
                {"Android", "Galère"},
                {"PHP", " T.N.T." } };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            listview = (ListView) findViewById(R.id.listView1);
            Addbutton = (Button) findViewById(R.id.button1);
            GetValue = (EditText)findViewById(R.id.editText1);
            GetValue2 = (EditText)findViewById(R.id.editText2);
    
            final List<String> ListElementsArrayList = new ArrayList<String>(Arrays.asList(new List<String>[]{ListElementsArrayList}));
            final ArrayAdapter<String> adapter = new ArrayAdapter<String>
                    (MainActivity.this, android.R.layout.simple_list_item_1, ListElementsArrayList);
            listview.setAdapter(adapter);
            Addbutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ListElementsArrayList.add(GetValue.getText().toString());
                    adapter.notifyDataSetChanged();
                }
            });
        }
    }
    

    Merci à vous.

    Pour info, je ne sais pas comment j'ai fait pour avoir cette erreur.

    Lorsque le code fonctionne (enfin presque), au lieu de m'afficher 2 mots formant un item, il ne m'affiche que le 1er.

    A +

    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2016 à 17:13:06

      Et c'est quoi ton erreur ?

      Tu es sûr que ce n'est pas mieux d'utiliser un tableau à 1 dimension pour ta liste ?

      -
      Edité par Nhi 8 février 2016 à 17:17:23

      • Partager sur Facebook
      • Partager sur Twitter
      The people who are crazy enough to think they can change the world, are the ones who do.
      Anonyme
        8 février 2016 à 20:06:03

        Faudrait effectivement voir ton logcat :)

        En ce qui concerne le fait que ça n'affiche qu'un seul mot, c'est que ton adapter relie tes données à un layout de type simple_list_item_1, qui ne contient qu'un TextView. Je t'invite donc à consulter les autres types disponibles ou à créer un adapter custom pour répondre à tes besoins. 

        • Partager sur Facebook
        • Partager sur Twitter
          9 février 2016 à 2:15:14

          Bonsoir,

          Merci pour vos réponses

          pour le moment la ligne 32 ne semble pas être en cause

          @ Alex112524

          lorsque je mets "simple_list_item_2", l'appli ne se lance même pas.

          @Nhi

          Un tableau  je ne sais pas si cela vaut la peine.

          Il y aura une liste de 10/15 lignes max

          et chaque ligne aura 3 mots.

          Oui, je sais, je vous parle d'une liste à 2 mots pour le moment.

          C'est normal, je veux apprendre et comprendre  le principe pour 2 mots, d'abord, après j'adapterais.

          En ce moment, je viens de tout refaire , je post un nouveau message après les tests

          Merci

          • Partager sur Facebook
          • Partager sur Twitter
            9 février 2016 à 2:37:09

            Carus a écrit:

            Un tableau  je ne sais pas si cela vaut la peine.

            Pourtant tu en utilises un à 2 dimensions : 

            String[][] ListElementsArrayList = new String[][] {
                        {"Android", "Galère"},
                        {"PHP", " T.N.T." } };


            Après je sais pas ce que tu veux faire exactement, mais moi en toute logique dans une liste je met 1 texte par ligne.

            Si tu veux mettre 2 mots sur la même ligne met les dans la même chaîne. Mais je vois pas trop l’intérêt de faire un tableau à 2 dimensions.

            • Partager sur Facebook
            • Partager sur Twitter
            The people who are crazy enough to think they can change the world, are the ones who do.
            Anonyme
              9 février 2016 à 6:55:09

              On peut envoyer deux strings à un Adapter de type simple_list_item_2 de la façon suivante :

              ListAdapter adapter = new SimpleCursorAdapter(
                               this,
                               android.R.layout.simple_list_item_2,
                               mCursor,     // Pass in the cursor to bind to.
                               new String[] {People.NAME, People.COMPANY}, // Array of cursor columns to bind to.
                               new int[] {android.R.id.text1, android.R.id.text2});  // Parallel array of which template objects to bind to those columns.
              
                       // Bind to our new adapter.
                       setListAdapter(adapter);

              Tu te crées un petit adapter personnaliser sans toutefois avoir à passer par BaseAdapter.

              Sinon, quand on crée un adapter avec BaseAdapter pour, disons comme exemple, envoyer un ImageView et 3 TextViews pour modeler une carte d'affaire, on va souvent y passer des objets, ici un Contact. Ce dernier contiendrait les 4 champs au lieu d'envoyer des listes.

              En espérant que ça t'aide :D

              • Partager sur Facebook
              • Partager sur Twitter
                9 février 2016 à 11:22:45

                Bonjour,

                @Nhi

                l'utilité de mon appli perso:

                c'est pour m'aider à apprendre une langue étrangère (le polonais)

                 Le 1er mot sera un mot tiré au hasard en français.

                Le 2 mot sera ma réponse en polonais

                le (futur) 3eme mot sera la réponse attendue (bien entendue invisible)

                A la fin de la série de question, la liste apparait

                Si la réponse est bonne ou fausse, un texte  en vert ou rouge.

                @ Alex112524

                Merci, tout m'aide, mais j'apprends à comprendre, j'essaye d'apprendre et de comprendre.

                Je serais absent 2/3 jours, j’emmène un portable si je peux me connecter.

                A +

                • Partager sur Facebook
                • Partager sur Twitter

                je n'arrive pas à corriger ...

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown