3

インストールされているアプリでリストを作成し、ユーザーに選択させるアプリケーションに取り組んでいます。1つを除いて、すべてが機能しています。それらをアルファベット順に並べます。これが私が使用しているコードです:

private List<App> loadInstalledApps(boolean includeSysApps) {
  List<App> apps = new ArrayList<App>();

  PackageManager packageManager = getPackageManager();

  List<PackageInfo> packs = packageManager.getInstalledPackages(0); 

  for(int i=0; i < packs.size(); i++) {
     PackageInfo p = packs.get(i);

     App app = new App();
     app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
     app.setPackageName(p.packageName);
     app.setVersionName(p.versionName);
     app.setVersionCode(p.versionCode);
     CharSequence description = p.applicationInfo.loadDescription(packageManager);
     app.setDescription(description != null ? description.toString() : "");
     apps.add(app);
  }

  return apps;

}

どんな助けでも大歓迎です!

4

4 に答える 4

11

コンパレータを使用 してデータを並べ替えます...

Collections.sort(apps, new Comparator<App>() {

                @Override
                public int compare(App lhs, App rhs) {
                         //here getTitle() method return app name...
                    return lhs.getTitle().compareTo(rhs.getTitle());

                }
            });
于 2012-10-03T14:09:18.340 に答える
2

最初に:コンパレータを作成します

パブリッククラスAppはComparable{を実装します

// Lista de atributos y métodos

public int compareTo(Object o) {
    // logic of comparation
    return result; //must be integer
}

}

例えば:

public int compareTo(Object o) {
        Direccion dir = (Direccion)o;
        if(this.name < app.getName())
            return -1;
        else if(this.name == app.getName())
            return 0;
        else
            return 1;
}

そして、ショートしたいときは、Collections.short(list)

于 2012-10-03T14:15:57.530 に答える
0

最も簡単なソリューション

Collections.sort(familleList, (famille, t1) -> famille.compareTo(t1));
于 2020-03-04T19:52:26.553 に答える
0

Kotlinではラムダ式とコンパレータを使用しています。リストをアルファベット順に簡単に並べ替えることができます。

yourList.sortWith(Comparator { obj1, obj2 ->

 obj1.name.compareTo(obj2?.name!!, ignoreCase = true)

 })

注:ここで、obj1とobj2はリストのモデルオブジェクトです。例えば

val yourList: MutableList<Model> = ArrayList()
于 2020-04-21T03:47:25.917 に答える