Android實(shí)現(xiàn)列表數(shù)據(jù)按名稱排序、中英文混合排序
有時(shí)候我們需要多列表中的數(shù)據(jù)進(jìn)行特定的排序,最近項(xiàng)目中用到的是按名稱排序,所以簡單來說一下:
效果圖:

排序方法:
Collections.sort(students, new SortChineseName());
for (Student s : students) {
Log.e("David", "名稱正序排列:" + s.getName());
}
Log.d("David", "---------------------------------------");
Collections.reverse(students);
for (Student s : students) {
Log.e("David", "名稱倒序排列(一):" + s.getName());
}
Log.d("David", "---------------------------------------");
Collections.sort(students, Collections.reverseOrder(new SortChineseName()));
for (Student s : students) {
Log.e("David", "名稱倒序排列(二):" + s.getName());
}
sort方法
class SortChineseName implements Comparator<ResolveInfo> {
/**
* create by Davide
* 參數(shù)說明:
* ResolveInfo 為你的List集合中的類-我這里為 android系統(tǒng)中apk信息類
*/
private Context mContext;
//構(gòu)造-傳進(jìn)來context對象
public SortChineseName(Context mContext) {
this.mContext = mContext;
}
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
@Override
public int compare(ResolveInfo info1, ResolveInfo info2) {
String apkName1 = info1.loadLabel(mContext.getPackageManager()).toString();
String apkName2 = info2.loadLabel(mContext.getPackageManager()).toString();
/**
*create by Davide
*開始比較-我這兒按照apk的名稱排序,便獲取apkName
*/
if (cmp.compare(apkName1, apkName2) > 0) {
return 1;
} else if (cmp.compare(apkName1, apkName2) < 0) {
return -1;
}
return 0;
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android數(shù)據(jù)類型之間相互轉(zhuǎn)換系統(tǒng)介紹
一些初學(xué)Android的朋友可能會(huì)遇到JAVA的數(shù)據(jù)類型之間轉(zhuǎn)換的苦惱;本文將為有這類需求的朋友解決此類問題2012-11-11
Android自定義View實(shí)現(xiàn)隨手勢滑動(dòng)控件
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)隨手勢滑動(dòng)的控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
Android模塊化中數(shù)據(jù)傳遞/路由跳轉(zhuǎn)實(shí)現(xiàn)示例
這篇文章主要介紹了Android模塊化中數(shù)據(jù)傳遞/路由跳轉(zhuǎn)實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Android ADT和SDK Manager無法更新下載解決方案
這篇文章主要介紹了Android ADT和SDK Manager無法更新下載解決方案的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android獲取手機(jī)型號/系統(tǒng)版本號/App版本號等信息實(shí)例講解
本示例獲得手機(jī)型號,系統(tǒng)版本,App版本號等信息,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06
Android開發(fā)使用RecyclerView添加點(diǎn)擊事件實(shí)例詳解
這篇文章主要為大家介紹了Android開發(fā)使用RecyclerView添加點(diǎn)擊事件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
flutter 怎么實(shí)現(xiàn)app整體灰色效果
Flutter 是 Google 開源的 UI 工具包,幫助開發(fā)者通過一套代碼庫高效構(gòu)建多平臺(tái)精美應(yīng)用,支持移動(dòng)、Web、桌面和嵌入式平臺(tái)。這篇文章給大家介紹flutter 怎么實(shí)現(xiàn)app整體灰色效果,感興趣的朋友一起看看吧2020-04-04

