gpt4 book ai didi

android - 在 Android 中显示已安装的应用程序时重复

转载 作者:行者123 更新时间:2023-11-29 00:33:07 24 4
gpt4 key购买 nike

首先,我想说这是我在 StackOverflow 上的第一篇文章,所以我希望我做对了。

我正在尝试制作一个显示用户所有应用程序的 Android 应用程序。我遇到的问题是某些应用程序被多次显示。我不知道如何检查与包关联的 Activity ,但我认为它与此类似:

Android: How to get a list of installed activities, as they appear in launcher, without duplicates

Intent 解决方案不显示任何重复项,但我如何使用类似的内容在 GridView 中显示?

编辑:感谢您的快速回复。这是我已经获得包裹的方式。但是,我没有使用 0 标志。替换 0 标志后,我仍然收到重复项。与 GridView 的工作方式有关吗?我碰巧注意到,当我在 GridView 上向下滚动并返回时,我的列表顺序不同。

将应用拉入列表的代码:

ArrayList<ApplicationInfo> apps =  (ArrayList<ApplicationInfo>) manager.getInstalledApplications(0);  //manager is a variable containing getPackageManager

编辑 2:

使用如下代码输出ArrayList后:

 for(int i = 0; i < apps.size(); i++){

Log.i((String) apps.get(i).loadLabel(manager), apps.get(i).packageName);

}

我可以得出结论,数组中没有重复项。但是,它们以某种方式出现在 gridview 中。

最终编辑:

这个问题的最佳答案最终解决了 GridView 问题:

Items inside GridView getting repeated when screen scrolls

最佳答案

这是获取当前已安装包的替代方法。当我以这种方式获取信息时,我不会得到重复项:

            PackageManager packageManager = null;
List<ApplicationInfo> appsList = new ArrayList<ApplicationInfo>();
try {
packageManager = getPackageManager();
if (packageManager != null) {
appsList = packageManager.getInstalledApplications(0);
}
} catch (Exception e1) {
Log.v("TAG", "This is my error: ", e1);
}

然后您可以从 ApplicationInfo 对象中检索各种信息(包括图标、名称等)。

关于android - 在 Android 中显示已安装的应用程序时重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com