- 字母检索、字母分类
- 字母检索后首字列表展示
- 搜索功能
直接引用sortlistviewlibrary module源码,或者引用build/outputs下sortlistviewlibrary-release.aar包
在xml布局文件引用SortListView控件
<com.bluearchitect.jackhan.sortlistviewlibrary.SortListView
android:id="@+id/sortListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:dialog_bg="@drawable/show_head_toast_bg"
app:dialog_text_color="@color/sort_dialog_text"
app:dialog_text_size="15dp"
app:letters_bg="@color/letters_bg"
app:letters_text_color="@color/letters_text"
app:letters_text_size="14sp"
app:sidebar_bg="@drawable/sidebar_background"
app:sidebar_cell_spacing="4dp"
app:sidebar_text_color="@color/sidebar_text"
app:sidebar_text_color_pressed="@color/sidebar_text_pressed"
app:firstwords_dialog_bg="@drawable/first_word_bg"
app:firstwords_dialog_text_color="@color/firstwords_dialog_text"
app:firstwords_dialog_text_size="16sp">
</com.bluearchitect.jackhan.sortlistviewlibrary.SortListView>
dialog_bg:字母弹窗背景
dialog_text_color:字母弹窗字体颜色
dialog_text_size:字母弹窗字体大小
letters_bg:字母标题背景
letters_text_color:字母标题字体颜色
letters_text_size:字母标题字体大小
sidebar_bg:侧栏背景
sidebar_cell_spacing:侧栏字母间距
sidebar_text_color:侧栏字体颜色
sidebar_text_color_pressed:侧栏字体点击颜色
firstwords_dialog_bg:字母检索首字列表背景
firstwords_dialog_text_color:字母检索首字列表字体颜色
firstwords_dialog_text_size:字母检索首字列表字体大小
数据bean要继承SortModel,并且复写bindSortName()方法,配置需检索的字段
public class Contacts extends SortModel {
String contactsName;
public String getContactsName() {
return contactsName;
}
public void setContactsName(String contactsName) {
this.contactsName = contactsName;
}
@Override
public String bindSortName() {
return contactsName;
}
}
列表适配器需继承SortAdapter
public class ContactsAdapter extends SortAdapter<ContactsAdapter.ContactsViewHolder, Contacts> {
public ContactsAdapter(Context mContext, List<Contacts> list) {
super(mContext, list);
}
@Override
public ContactsViewHolder onCreateViewHolder(View parent) {
ContactsViewHolder viewHolder = new ContactsViewHolder(parent, LayoutInflater.from(mContext)
.inflate(R.layout.item_contacts, null));
return viewHolder;
}
@Override
public void onBindViewHolder(ContactsViewHolder viewHolder, SortModel sortModel, int position) {
viewHolder.titleTV.setText(sortModel.getSortName());
}
class ContactsViewHolder extends SortAdapter.ViewHolder {
TextView titleTV;
public ContactsViewHolder(View parentView, View childView) {
super(parentView, childView);
titleTV = (TextView) childView.findViewById(R.id.title);
}
}
}
开始使用
sortListView = (SortListView) findViewById(R.id.sortListView);
contactsList = getContacts();
adapter = new ContactsAdapter(this, contactsList);
sortListView.setAdapter(adapter);
sortListView.setShowFirstWordsByLetter(true);//是否显示字母检索后的所有首字
sortListView.setOnItemClickListener(this);