Android 中文联系人排序实现

Android 平台实现中文联系人排序

在 Android 开发中,实现联系人列表按中文拼音排序是一项常见需求。由于 Android 系统默认排序规则无法满足中文排序需求,开发者需要进行自定义排序算法实现。

介绍一种基于 Collator 类的中文联系人排序方法,并提供代码示例。

// 获取中文排序器
Collator collator = Collator.getInstance(Locale.CHINA); 

// 自定义比较器
Comparator comparator = new Comparator() {
    @Override
    public int compare(Contact contact1, Contact contact2) {
        // 获取联系人姓名
        String name1 = contact1.getName();
        String name2 = contact2.getName();

        // 使用 Collator 进行中文排序
        return collator.compare(name1, name2);
    }
};

// 对联系人列表进行排序
Collections.sort(contactList, comparator);

上述代码中,首先通过 Collator.getInstance(Locale.CHINA) 获取到一个中文排序器。 然后,自定义一个 Comparator ,利用 Collator 对联系人姓名进行比较,最终使用 Collections.sort() 方法对联系人列表进行排序。

需要注意的是,上述代码仅提供基本实现思路,实际开发中需要根据具体需求进行调整。例如,可能需要考虑多音字、特殊字符等情况,以保证排序结果准确性。

zip
android 联系人排序,支持中文.zip 预估大小:74个文件
folder
android 联系人排序,支持中文 文件夹
folder
android 联系人排序,支持中文 文件夹
folder
SortListView-master 文件夹
file
.project 819B
file
project.properties 563B
folder
src 文件夹
folder
com 文件夹
folder
dy 文件夹
folder
ustc 文件夹
folder
sortlistviewdemo 文件夹
file
ClearEditText.java 4KB
file
PinyinComparator.java 489B
file
SortModel.java 412B
file
MainActivity.java 4KB
file
SideBar.java 4KB
file
SortAdapter.java 3KB
file
CharacterParser.java 8KB
file
AndroidManifest.xml 844B
folder
res 文件夹
folder
drawable-ldpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-hdpi 文件夹
file
ic_launcher.png 6KB
file
show_head_toast_bg.9.PNG 3KB
file
search_bar_icon_normal.png 598B
file
emotionstore_progresscancelbtn.png 1KB
file
search_bar_edit_pressed.9.png 2KB
file
search_bar_edit_normal.9.png 2KB
folder
values-v11 文件夹
file
styles.xml 319B
folder
drawable 文件夹
file
sidebar_background.xml 343B
file
search_bar_edit_selector.xml 390B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 6KB
folder
layout 文件夹
file
item.xml 1KB
file
activity_main.xml 2KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 6KB
folder
values 文件夹
file
arrays.xml 1KB
file
strings.xml 173B
file
styles.xml 680B
folder
values-v14 文件夹
file
styles.xml 362B
folder
.settings 文件夹
file
org.eclipse.jdt.core.prefs 173B
file
README.md 239B
folder
gen 文件夹
folder
com 文件夹
folder
dy 文件夹
folder
ustc 文件夹
folder
sortlistviewdemo 文件夹
file
BuildConfig.java 170B
file
R.java 3KB
folder
libs 文件夹
file
android-support-v4.jar 964KB
folder
screenshots 文件夹
file
捕获2.PNG 94KB
file
捕获.PNG 97KB
file
.classpath 466B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
bin 文件夹
file
resources.ap_ 46KB
folder
classes 文件夹
folder
com 文件夹
folder
dy 文件夹
folder
ustc 文件夹
folder
sortlistviewdemo 文件夹
file
R$layout.class 461B
file
R$style.class 461B
file
R$array.class 421B
file
SideBar$OnTouchingLetterChangedListener.class 321B
file
BuildConfig.class 365B
file
R$drawable.class 762B
file
R$attr.class 370B
file
SortAdapter$ViewHolder.class 493B
file
SortAdapter.class 4KB
file
PinyinComparator.class 1KB
file
CharacterParser.class 13KB
file
R$id.class 581B
file
SortModel.class 763B
file
MainActivity$2.class 2KB
file
SideBar.class 4KB
file
R.class 717B
file
R$string.class 463B
file
MainActivity$1.class 1KB
file
ClearEditText.class 4KB
file
MainActivity$3.class 1KB
file
MainActivity.class 5KB
file
AndroidManifest.xml 844B
folder
dexedLibs 文件夹
file
android-support-v4-827bf3afee412dfaee220f61e8730ce4.jar 332KB
file
jarlist.cache 120B
file
SortListViewDemo.apk 394KB
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-ldpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-hdpi 文件夹
file
ic_launcher.png 6KB
file
show_head_toast_bg.9.PNG 2KB
file
search_bar_icon_normal.png 598B
file
emotionstore_progresscancelbtn.png 1KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 6KB
file
classes.dex 1MB
...
zip 文件大小:2.22MB