3

Можно ли использовать SectionIndexer с GridView в Android? Быстрая прокрутка работает нормально, и я использую пользовательский адаптер, который расширяет BaseAdapter. Адаптер в настоящее время реализует SectionIndexer и, по-видимому, идентичен примерам, показанным онлайн, и по переполнению стека. Это заставило меня подумать, что это возможно даже с GridView и пользовательским адаптером.РазделIndexer с GridView в Android

+0

Конечно, это возможно, если вы используете «Курсор» для сортировки ваших данных. – adneal

+0

Я не использую курсор. Я сохранил его в ArrayList, но, полагаю, я могу изменить его на Курсор. Получил пример с помощью курсора? –

+0

лучший образец https://github.com/guoGavin/Andorid-StickyHeaderGridView –

ответ

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> 

Это простой пример, но не намного больше, чем это. Реализация SectionIndexer довольно проста.

+0

Мне не хватало AlphabetIndexer :-) –