在Android中使用GridView的SectionIndexer

时间:2012-04-30 19:38:00

标签: android gridview android-3.0-honeycomb adapter android-4.0-ice-cream-sandwich

是否可以在Android中使用SectionIndexer GridView?快速滚动工作正常,我正在使用扩展BaseAdapter的自定义适配器。适配器当前正在实现SectionIndexer,并且似乎与在线和Stack Overflow上显示的示例相同。这让我想到是否可以使用GridView和自定义适配器。

1 个答案:

答案 0 :(得分: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非常简单。