通讯录或者事件列表需要用到此功能,先看截图
下载地址:IndexableListView-master
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package com.woozzu.android.indexablelistview; import java.util.ArrayList; import java.util.Collections; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.SectionIndexer; import com.woozzu.android.util.StringMatcher; import com.woozzu.android.widget.IndexableListView; public class IndexableListViewActivity extends Activity { private ArrayList<string> mItems; private IndexableListView mListView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mItems = new ArrayList<string>(); mItems.add( "Diary of a Wimpy Kid 6: Cabin Fever" ); mItems.add( "Steve Jobs" ); mItems.add( "Inheritance (The Inheritance Cycle)" ); mItems.add( "11/22/63: A Novel" ); mItems.add( "The Hunger Games" ); mItems.add( "The LEGO Ideas Book" ); mItems.add( "Explosive Eighteen: A Stephanie Plum Novel" ); mItems.add( "Catching Fire (The Second Book of the Hunger Games)" ); mItems.add( "Elder Scrolls V: Skyrim: Prima Official Game Guide" ); mItems.add( "Death Comes to Pemberley" ); mItems.add( "Diary of a Wimpy Kid 6: Cabin Fever" ); mItems.add( "Steve Jobs" ); mItems.add( "Inheritance (The Inheritance Cycle)" ); mItems.add( "11/22/63: A Novel" ); mItems.add( "The Hunger Games" ); mItems.add( "The LEGO Ideas Book" ); mItems.add( "Explosive Eighteen: A Stephanie Plum Novel" ); mItems.add( "Catching Fire (The Second Book of the Hunger Games)" ); mItems.add( "Elder Scrolls V: Skyrim: Prima Official Game Guide" ); mItems.add( "Death Comes to Pemberley" ); mItems.add( "Zeath Comes to Pemberley" ); mItems.add( "Xeath Comes to Pemberley" ); Collections.sort(mItems); ContentAdapter adapter = new ContentAdapter( this , android.R.layout.simple_list_item_1, mItems); mListView = (IndexableListView) findViewById(R.id.listview); mListView.setAdapter(adapter); mListView.setFastScrollEnabled( true ); } private class ContentAdapter extends ArrayAdapter<string> implements SectionIndexer { private String mSections = "#ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; public ContentAdapter(Context context, int textViewResourceId, List<string> objects) { super(context, textViewResourceId, objects); } @Override public int getPositionForSection( int section) { // If there is no item for current section, previous section will be selected for ( int i = section; i >= 0; i--) { for ( int j = 0; j < getCount(); j++) { if (i == 0) { // For numeric section for ( int k = 0; k <= 9; k++) { if (StringMatcher.match(String.valueOf(getItem(j).charAt(0)), String.valueOf(k))) return j; } } else { if (StringMatcher.match(String.valueOf(getItem(j).charAt(0)), String.valueOf(mSections.charAt(i)))) return j; } } } return 0; } @Override public int getSectionForPosition( int position) { return 0; } @Override public Object[] getSections() { String[] sections = new String[mSections.length()]; for ( int i = 0; i < mSections.length(); i++) sections[i] = String.valueOf(mSections.charAt(i)); return sections; } } } </string></string></string></string> |
下载地址:IndexableListView-master
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2302
- 用户1336
- 访客10988150
每日一句
Laughter revives a tired spirit and mends a broken heart.
笑声能重燃疲惫的心灵,修复破碎的情感。
笑声能重燃疲惫的心灵,修复破碎的情感。
新会员