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 :

Erreur lors du passage à une activité ListView


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Erreur lors du passage à une activité ListView
    Bonjour à tous,
    J'essaie de développer une application relativement simple, ou j'ai une première vue, et un bouton permettant de passer à une deuxième activité contenant une ListView.

    La première activité, toute simple, se présente ainsi :

    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
     
    public void onCreate(Bundle savedInstanceState) {<div style="margin-left:40px">super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            rInvert = (Button) findViewById(R.id.invert);
            rBouton2 = (Button) findViewById(R.id.bouton2);
     
            rInvert.setOnClickListener(
                <div style="margin-left:40px">new OnClickListener() {
     
                    public void onClick(View v) {
                        Intent intent = new Intent(gotoLV.this, ActiviteListView.class);
                          //On démarre l'autre Activity
                          startActivityForResult(intent, CODE_DE_MON_ACTIVITE);
                    }
                }</div>&nbsp;);
     
            rBouton2.setOnClickListener(<div style="margin-left:40px">new OnClickListener() {
     
                        public void onClick(View v) {
                            Intent intent = new Intent(gotoLV.this, Activite3.class);
                              //On démarre l'autre Activity
                              startActivityForResult(intent, CODE_DE_MON_ACTIVITE);
                        }
                    }</div>);</div>}
    La deuxième activité, qui doit normalement permettre d'afficher la ListView :

    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
     
    public class ActiviteListView extends ListActivityActivity{
     
        private ListView rListViewTauxChanges;
     
        protected void onCreate(Bundle savedInstanceState) {
            <div style="margin-left:40px">super.onCreate(savedInstanceState);
     
            setContentView(R.layout.mainlistview);
     
            rListViewTauxChanges = (ListView) findViewById(R.id.list);
     
            ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> map = new HashMap<String, String>();
     
            map.put("titre", "Word");
            map.put("description", "Editeur de texte");
            listItem.add(map);
     
            SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.layoutlistview,
                   new String[] {"titre", "description"}, new int[] {R.id.titre, R.id.description});
     
            rListViewTauxChanges.setAdapter(mSchedule);</div>}
     
    }
    Les layout sont eux aussi relativement simples :

    layoutlistview.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
     
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            >
     
            <TextView android:id="@+id/titre"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:textSize="16px"
                 android:textStyle="bold"
                 />
     
        </LinearLayout>
    et mainlistview.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
     
        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
          />
     
    </LinearLayout>
    Lorsque je tente d'executer l'application et d'accéder à la deuxième activité sensée afficher la listView, j'ai une erreur :
    RuntimeException: Unable to start activity ComponentInfo{com.amos.gotoLV/com.amos.gotoLV.ActiviteListView}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'.
    Je suppose que j'ai fait une erreur toute bête, mais je n'arrive pas à la voir .

    Merci par avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    En fait j'ai trouvé la solution tout seul comme un grand, je met la solution au cas ou quelqu'un d'autre en aurait besoin.

    Il faut définir le layout de la listview (mainlistview.xml dans mon cas) ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
          />
    Et du coté 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
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            setContentView(R.layout.mainlistview);
     
            rListViewTauxChanges = (ListView) findViewById(R.layout.mainlistview);
     
            ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> map = new HashMap<String, String>();
     
            map.put("titre", "Word");
            listItem.add(map);
     
            SimpleAdapter notes =
                    new SimpleAdapter(this.getBaseContext(),listItem,  R.layout.layoutlistview, new String[] {"titre"}, new int[] {R.id.titre});
            setListAdapter(notes);
     
        }
    Et voilou

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

Discussions similaires

  1. Passage d'une activité (ListView) à une autre
    Par hetlar dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 26/07/2013, 16h19
  2. Passage d'une activité (ListView) à une autre
    Par android84 dans le forum Composants graphiques
    Réponses: 9
    Dernier message: 30/01/2013, 11h46
  3. Réponses: 11
    Dernier message: 09/08/2007, 14h27
  4. erreurs lors de passage de valeurs par un struct
    Par Aliveli dans le forum Visual C++
    Réponses: 2
    Dernier message: 15/10/2006, 23h15
  5. Réponses: 6
    Dernier message: 28/06/2006, 15h01

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