왼손으로 글 써서 길게 못 씁니다.^^


옴니아2에서  음악목록을 스크롤 할 때,

A 로 시작...

가 로 시작...

되는 곳으로 바로 스크롤아 되더군요.


안드로이드에는  기본으로 제공 하더군요.


SectionIndexer 과 AlphabetIndexer 인데요.

Music에서 이 기능을 사용하더군요.



class MusicAlphabetIndexer extends AlphabetIndexer {
   
    public MusicAlphabetIndexer(Cursor cursor, int sortedColumnIndex, CharSequence alphabet) {
        super(cursor, sortedColumnIndex, alphabet);
    }
   
    @Override
    protected int compare(String word, String letter) {
        String wordKey = MediaStore.Audio.keyFor(word);
        String letterKey = MediaStore.Audio.keyFor(letter);
        if (wordKey.startsWith(letter)) {
            return 0;
        } else {
            return wordKey.compareTo(letterKey);
        }
    }
}

이렇게 만들고요

static class AlbumListAdapter extends SimpleCursorAdapter implements SectionIndexer {
                      private AlphabetIndexer mIndexer;


.......... 중략..............
                if (mIndexer != null) {
                    mIndexer.setCursor(cursor);
                } else {
                    mIndexer = new MusicAlphabetIndexer(cursor, mAlbumIdx, mResources.getString(
                            R.string.fast_scroll_alphabet));
                }

.......... 중략..............

         public Object[] getSections() {
            return mIndexer.getSections();
        }
       
        public int getPositionForSection(int section) {
            return mIndexer.getPositionForSection(section);
        }
       
        public int getSectionForPosition(int position) {
            return 0;
        }
}

-----------------

<resources>
    <string name="fast_scroll_alphabet">\u0020ABCDEFGHIJKLMNOPQRSTUVWXYZ가나다라마바사아자차카타파하</string>
</resources>

-----------------

이런 식으로 리스트를 만드면  첫글자 위치로 바로 이동이 가능 합니다.

^^