• Non classé
  • 29

Material Design : RecyclerView et CardView

Vous aimerez aussi...

29 réponses

  1. Vuffray dit :

    Salut, je suis débutant en android et je voudrais juste savoir quelles sont les getters et setters. parce que j’ai une erreur avec ceux que j’ai fait moi même.
    Merci de ta reponse. Sinon très bon tuto ;D

  2. Vuffray dit :

    Je suis désolé de revenir encore une fois. mais j’ai un problème avec l’Adapter.

    public class MyAdapter extends RecyclerView.Adapter { //une erreur à cette ligne

    List list;

    //ajouter un constructeur prenant en entrée une liste
    public MyAdapter(List list) {
    this.list = list;
    }

    //cette fonction permet de créer les viewHolder
    //et par la même indiquer la vue à inflater (à partir des layout xml)
    @Override //une ici
    public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int itemType) {
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cell_cards,viewGroup,false);
    return new MyViewHolder(view); //une autre ici
    }

    //c’est ici que nous allons remplir notre cellule avec le texte/image de chaque MyObjects
    @Override
    public void onBindViewHolder(MyViewHolder myViewHolder, int position) {
    MyObject myObject = list.get(position);
    myViewHolder.bind(myObject);
    }

    @Override
    public int getItemCount() {
    return list.size();
    }

    }

    J’ai bien copié le java du MyViewHolder et MyObject, je sais pas si quelqu’un peu m’aider ?

  3. Vuffray dit :

    08 10:41:42.566 22513 22513 E AndroidRuntime: Process: com.test.urgencecall, PID: 22513

    05-08 10:41:42.566 22513 22513 E AndroidRuntime: at com.test.urgencecall.MyViewHolder.(MyViewHolder.java:24)

    05-08 10:41:42.566 22513 22513 E AndroidRuntime: at com.test.urgencecall.MyAdapter.onCreateViewHolder(MyAdapter.java:27)

    05-08 10:41:42.566 22513 22513 E AndroidRuntime: at com.test.urgencecall.MyAdapter.onCreateViewHolder(MyAdapter.java:13)

    voilà, je sais pas si ça va t’aider …

    • Florent Champigny dit :

      envoie moi le log complet s’il te plait, il indique les lignes mais pas quelle erreur est remontée. Il serait bien de savoir si c’est un NullPointerException ou autre 🙂

      • Vuffray dit :

        https://www.dropbox.com/s/1q1u4tduq3koj44/UrgenceCall.zip?dl=0 ici tu pourras trouver tout mon code.

        ici il y a le LogCat : —- 8 mai 2015 10:54:58 —-

        05-08 10:54:51.352 2176 2176 I Timeline: Timeline: Activity_launch_request id:com.test.urgencecall time:104195225

        05-08 10:54:51.353 809 1687 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.test.urgencecall/.MainActivity bnds=[224,267][435,537] (has extras)} from uid 10032 on display 0

        05-08 10:54:51.437 809 1356 I ActivityManager: Start proc com.test.urgencecall for activity com.test.urgencecall/.MainActivity: pid=25174 uid=10200 gids={50200, 9997, 3003, 1028, 1015} abi=armeabi-v7a

        05-08 10:54:51.831 25196 25196 I dex2oat : /system/bin/dex2oat –runtime-arg -classpath –runtime-arg –instruction-set=arm –instruction-set-features=div –runtime-arg -Xrelocate –boot-image=/system/framework/boot.art –dex-file=/data/data/com.test.urgencecall/cache/ads926679025.jar –oat-fd=24 –oat-location=/data/data/com.test.urgencecall/cache/ads926679025.dex –runtime-arg -Xms64m –runtime-arg -Xmx512m

        05-08 10:54:52.146 25174 25174 E AndroidRuntime: Process: com.test.urgencecall, PID: 25174

        05-08 10:54:52.146 25174 25174 E AndroidRuntime: at com.test.urgencecall.MyViewHolder.(MyViewHolder.java:24)

        05-08 10:54:52.146 25174 25174 E AndroidRuntime: at com.test.urgencecall.MyAdapter.onCreateViewHolder(MyAdapter.java:27)

        05-08 10:54:52.146 25174 25174 E AndroidRuntime: at com.test.urgencecall.MyAdapter.onCreateViewHolder(MyAdapter.java:13)

        05-08 10:54:52.148 809 1534 W ActivityManager: Force finishing activity com.test.urgencecall/.MainActivity

        05-08 10:54:52.451 809 1534 I WindowManager: Screenshot max retries 4 of Token{37a8c4f ActivityRecord{31b486ae u0 com.test.urgencecall/.MainActivity t399 f}} appWin=Window{1688431a u0 com.test.urgencecall/com.test.urgencecall.MainActivity} drawState=1

        05-08 10:54:52.953 809 829 W ActivityManager: Activity pause timeout for ActivityRecord{31b486ae u0 com.test.urgencecall/.MainActivity t399 f}

        05-08 10:54:53.806 809 1196 I WindowState: WIN DEATH: Window{1688431a u0 com.test.urgencecall/com.test.urgencecall.MainActivity}

        05-08 10:54:53.857 809 1709 I ActivityManager: Process com.test.urgencecall (pid 25174) has died

        —- 8 mai 2015 10:54:58 —-

        • Florent Champigny dit :

          enfin j’ai trouvé !
          c’est un problème de ClassCast. Dans ton code tu utilise des com.rey.material.widget.TextView, et dans ta vue tu as des TextView Android

          retire simplement
          import com.rey.material.widget.TextView;

          de ton ViewHolder 🙂

  4. Vuffray dit :

    J’ai encore une question, ce serait possible de changer d’activité avec un OnItemClickeListener et un switch ?

    • Florent Champigny dit :

      Le onitemclick n’existe plus, mais vous pouvez ajouter un clickListener sur les cellules, faire remonter l’évènement au fragment ou à l’activity pour lancer la seconde

  5. JAccess dit :

    bnsr.. j ai un probleme avec ma cardview qui peut m aider stp car je suis encor debutant en Android… merci d avance

    • Kevin De Jesus Ferreira dit :

      Bonsoir,

      Quel est votre soucis avec votre cardview, il nous faut plus de détail pour pouvoir vous aider.

  6. JAccess dit :

    j veux mettrw une action sur une carte view pour qu il m ouvre un autr activite en cliquant

  7. JAccess dit :

    j peux vous envoyer mes lignes d code svp aidez moi suis tt a fait bloqué

    • Kevin De Jesus Ferreira dit :

      Oui n’hésitez pas à publier ici, votre code et de nous dire exactement ce qu’il ne va pas dedans, ou ce que vous n’arrivez pas à faire avec.

  8. Julie dit :

    Bonjour,
    Tuto très intéressant mais j’ai un souci concernant « ActionBarActivity ». Il n’arrive pas à me l’importer. Pourtant j’ai bien tout ce qu’il faut il me semble dans mon fichier gradle.build:
    compile ‘com.android.support:appcompat-v7:26.0.1’
    compile ‘com.android.support.constraint:constraint-layout:1.0.2’
    compile ‘com.android.support:cardview-v7:26.0.1’
    compile ‘com.android.support:recyclerview-v7:26.0.1’
    testCompile ‘junit:junit:4.12’

    Merci d’avance de votre aide,

  9. VMJ dit :

    Bonjour ! Je tiens d’abord à vous remercier pour ce magnifique tutoriel : simple et concis.
    Mais j’aurais une question : lorsque vous créez le layout xml ‘content_cell_cards.xml’, pourquoi insérez-vous « en dur » une image comme ceci… :

    …alors que vous créez la classe « MyObject » avec comme attributs une variable texte et une url et que dans la MainActivity, vous peuplez les cellules avec des MyObject. En grois je ne comprends pourquoi vous avez inséré en dur une image dans le layout précédemment cité.
    Merci d’avance de votre réponse.

    • Kevin De Jesus Ferreira dit :

      Je penses que tu parles du « cell_cards.xml ».

      Alors nous n’ajoutons pas en dur, car il y a le préfixe « tools » qui permet d’avoir un rendu dans le preview Android Studio sans que l’image ne soit vraiment instanciée.

      « tools:src= »@drawable/parisguidetower » »

  10. victor shukuru dit :

    Bonjour, comment on peut remplir le RecyclerView liste avec les donnees de la base de donnees SQLIte en utilisant le cursor cursorLoarder

  11. Zoul dit :

    Bonjour ici. J’ai un souci avec la classe MyViewHolder. Dans cette classe et plus précisement dans la méthode bind l’élément Picasso est introuvable et j’arrive pas à résoudre le problème.
    Merci de me donner un coup de main.

  1. juin 22, 2015

    […] ce n’est pas encore fait, je vous invite à suivre mon tutoriel d’introduction aux RecyclerView et CardsView, qui introduit par la même le Material […]

  2. février 12, 2016

    […] Material Design : RecyclerView et CardView | Tutos Android France. Lors de la Google IO 2014, la firme a introduit un nouveau design, nommé Material Design. Ce dernier a pour but de standardiser le design des applications, en proposant une ergonomie adaptée et un look qui déchire Cette design est la base de leur nouvelle version d’Android : Lollipop Voyons ensemble comment l’implémenter ! Le principal atout du material design est l’ajout d’une profondeur dans l’application. Les vues sont donc soumises à un 3ème index (z-index en css), nommé ici l’élévation. Ces nouvelles vues sont disponibles dans la librairie de support v7 d’android, il vous faut donc commencer par importer dans votre fichier gralde : build.gralde CardView Une CardView s’utilise simplement comme n’importe quelle vue, depuis nos layout xml : Petit détail, la CardView agit comme une FrameView, c’est à dire qu’elle n’influence pas la disposition de ses sous-vues, si vous souhaitez les ordonnez, ajoutez-y un LinearLayout ou un RelativeLayout. cell_cards.xml RecyclerView activity_main.xml. […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Recevez un ebook GRATUIT !

Nous vous avons créé un ebook pour vous remercier de votre fidélité. Retrouvez les 10 librairies indispensables pour Android. Pour cela rien de plus simple vous avez juste à renseigner votre email, vous recevrez un mail de confirmation (pour que l'on vérifie que vous n'êtes pas un robot), il suffira de vous inscrire à la liste et vous recevrez l'Ebook quelques instant après (peut prendre un petit peu de temps car vous êtes beaucoup à le vouloir).
Votre adresse email
Secure and Spam free...