7

Pracuję nad szufladą nawigacji Material Design. Stworzyłem w nim nową klasę RecyclerItemClickListener implements RecyclerView.OnItemTouchListener, aby obsługiwać kliknięcia użytkownika na elementach listy. I użyć klasy w ten sposób w obrębie klasy MainActivityonCreate metoda:Jak zastosować setItemChecked (pozycja, prawda) z RecyclerView w systemie Android?

mRecyclerView.addOnItemTouchListener(
      new RecyclerItemClickListener(this, mRecyclerView, new RecyclerItemClickListener.OnItemClickListener() { 
       @Override 
       public void onItemClick(View view, int position) {// do whatever 
        if(position!=0){ 
         setItemChecked(position, true); 
         setSelectable(true); 
         boolean isSelected = view.isSelected(); 
         view.setActivated(isSelected); 

         selectItem(position); 
        } 
       } 
       @Override 
       public void onItemLongClick(View view, int position){ 
        // ... 
       } 
      }) 
    ); 

Oparłem ten kod z tym blogu: RecyclerView part 2 ale to nie uzyskiwanie zadanie, a dla mnie to nie jest jasne, w ogóle, w jaki jestem Powinienem to sprawić. Sprawdziłem również to pozornie łatwe rozwiązanie: Innodroid - Tracking Selected Item in RecyclerView (również cytowane w tym answer), ale nie jest jasne, w jaki sposób mam wyprowadzić moją klasę MyAdapter do klasy TrackSelectionAdapter.

Jaki jest najlepszy sposób wyróżnienia pozycji na liście? Utknąłem.

Proszę o pomoc.

Odpowiedz

7

Myślę, że znalazłem najlepszy poradnik jak korzystać z RecyclerView z wszystkimi potrzebnymi funkcjami i bez bibliotek (single + multiselection, hightlight, ripple, click and remove w multiselection, etc ...). Od pierwszego spojrzenia wydaje się to dobrze wyjaśnione.

Oto ona ->http://enoent.fr/blog/2015/01/18/recyclerview-basics/

[EDIT] końcu znalazłem czas, aby go wypróbować i stworzył nawet własną rękę bardziej elastyczne, mogą korzystać wszyscy moi ulepszenia: https://github.com/davideas/FlexibleAdapter. W tym łączniku wyjaśniam również, jak to działa. Zapraszamy do dodania go do projektu.

+0

Bardzo dziękuję za ten samouczek, pomógł mi bardzo! Zaimplementowałem klasę 'MyAdapter', a następnie rozszerzyłem interfejs' CickListener' o dwie metody: 'onItemClick' i' onItemLongClick' i działałem jak czar! –