Partage
  • Partager sur Facebook
  • Partager sur Twitter

Populer une listview avec des objet

Et les afficher correctement

Sujet résolu
Anonyme
    17 avril 2018 à 11:38:09

    Bonjour. Je cherche a remplir une listview avec un arraylist d'objet mais je ne parviens pas à trouver comment choisir la façon données s'affichent.
    Par exemple j'ai un objet Velo qui a un id et un et nom, et je voudrais que seuelement le nom s'affiche.
    Voila comment s'affiche mes Vélos :
    En plus de cela, je voudrais qui l'id soit récupérable quand on clique dessus. Je sais faire le clic sur la litview mais je ne sais pas comment récupérer les infos qu'il me faut.
    Voial le code : 
    // Récupère les vélos
    ArrayList<Velo> velos = veloDAO.getAll();
    
    // Créé l'adapter et l'associe à la listview listVelos
    ArrayAdapter<Velo> velo_adapter = new ArrayAdapter<Velo>(this, android.R.layout.simple_list_item_1, velos);
    listVelos.setAdapter(velo_adapter);
    
    //Affichage du numéro ??
    
    //Clic sur un objet
    listVelos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    Velo selected_velo = adapterView.getSelectedItem();
                    Log.d(TAG, "onItemClick: you clicked on " + selected_velo.getVelo_num());
    
                    if (selected_velo.getVelo_num() != 0) {
                        Log.d(TAG, "onItemClick: the ID id: " + selected_velo.getVelo_num());
                        Intent editVelo = new Intent(ShowVelos.this, EditVelo.class);
                        editVelo.putExtra("velo", selected_velo);
                        startActivity(editVelo);
                    } else {
                        toastMessage("No ID associated with that name");
                    }
                }
            });
    EDIT : 

    J'ai réglé mon soucis.

    Pour l'affichage j'ai fait réécrit le toString dans ma classe Velo, et pour le clic voila la solution :

    listVelos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    Velo selected_velo = (Velo) adapterView.getAdapter().getItem(i);
    
                    if (selected_velo.getVelo_num() != 0) {
                        Intent editVelo = new Intent(ShowVelos.this, EditVelo.class);
                        editVelo.putExtra("velo_num", selected_velo.getVelo_num());
                        startActivity(editVelo);
                    } else {
                        toastMessage("No ID associated with that name");
                    }
                }
            });

    -
    Edité par Anonyme 17 avril 2018 à 15:07:13

    • Partager sur Facebook
    • Partager sur Twitter

    Populer une listview avec des objet

    × 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