按字母顺序排列已安装应用程序的列表
Posted
技术标签:
【中文标题】按字母顺序排列已安装应用程序的列表【英文标题】:Alphabatize list of installed apps 【发布时间】:2011-12-31 17:47:24 【问题描述】:您好,我按照以下教程成功在我的应用程序中列出了所有已安装的应用程序。
List all installed apps in style
但是它没有按字母顺序列出它们,我不知道如何对它们进行排序,以便它们是。对此的任何帮助将不胜感激。我已经尝试了一些类似的方法
class IgnoreCaseComparator implements Comparator<String>
public int compare(String strA, String strB)
return strA.compareToIgnoreCase(strB);
IgnoreCaseComparator icc = new IgnoreCaseComparator();
java.util.Collections.sort(SomeArrayList,icc);
但不知道如何将其应用于应用列表标题。感谢您对此的任何帮助
===编辑===
感谢您的回复我做了以下但排序有错误。错误显示“集合类型中的方法排序(列表,比较器)不适用于参数(列表,ApplicationInfo.DisplayNameComparator)”
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);
ApplicationInfo a = p.applicationInfo;
if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1))
continue;
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);
Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(packageManager));
return apps;
【问题讨论】:
【参考方案1】:当您查询 android 以获取已安装应用程序的列表时,您将获得一个List<ApplicationInfo>
。 Android 为这些用户提供ApplicationInfo.DisplayNameComparator
:
Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(pm));
(其中pm
是PackageManager
的一个实例)。
【讨论】:
我编辑了我的上面但有一个错误。在我的课堂上,我没有任何关于 List 的内容,只是 List以上是关于按字母顺序排列已安装应用程序的列表的主要内容,如果未能解决你的问题,请参考以下文章
我正在创建一个双向链表,它将按字母顺序排列名称列表,但我不确定在 int main() 函数中放入啥