3

Est-il possible d'utiliser un SectionIndexer avec un GridView dans Android? Le défilement rapide fonctionne correctement et j'utilise un adaptateur personnalisé qui s'étend sur BaseAdapter. L'adaptateur est en train d'implémenter SectionIndexer et semble être identique aux exemples montrés en ligne et sur Stack Overflow. Cela m'a fait penser si c'est même possible de faire avec un GridView et un adaptateur personnalisé.SectionIndexer avec GridView dans Android

+0

Bien sûr, il est possible, tant que vous utilisez un 'Cursor' pour trier vos données. – adneal

+0

Je n'utilise pas de curseur. Je l'ai stocké dans une ArrayList, mais je suppose que je pourrais le changer en Cursor. Vous avez un exemple en utilisant un curseur? –

+0

le meilleur exemple https://github.com/guoGavin/Andorid-StickyHeaderGridView –

Répondre

3
static class YOUR_ADAPTER extends SimpleCursorAdapter implements SectionIndexer { 

private AlphabetIndexer mIndexer; 

YOUR_ADAPTER (Context context, AlbumBrowserActivity currentactivity, 
      int layout, Cursor cursor, String[] from, int[] to) { 
     super(context, layout, cursor, from, to); 

     getColumnIndices(cursor); 
    } 

    private void getColumnIndices(Cursor cursor) { 
     if (cursor != null) { 
      YOUR_COLUMN = cursor.getColumnIndexOrThrow(WHAT_YOU'RE_SORTING); 

      if (mIndexer != null) { 
       mIndexer.setCursor(cursor); 
      } else { 
       mIndexer = new AlphabetIndexer(cursor, YOUR_COLUMN, mResources.getString(
         R.string.fast_scroll_alphabet)); 
      } 
     } 
    } 

    @Override 
    public Object[] getSections() { 
     return mIndexer.getSections(); 
    } 

    @Override 
    public int getPositionForSection(int section) { 
     return mIndexer.getPositionForSection(section); 
    } 

    @Override 
    public int getSectionForPosition(int position) { 
     return 0; 
    } 
} 

fast_scroll_alphabet String

<string name="fast_scroll_alphabet">\u0020ABCDEFGHIJKLMNOPQRSTUVWXYZ</string> 

C'est un exemple de base, mais il n'y a pas beaucoup plus que ça. La mise en œuvre SectionIndexer est assez simple.

+0

Il me manquait AlphabetIndexer :-) –