首先,我想说这是我在 StackOverflow 上的第一篇文章,所以我希望我做得对。
我正在尝试制作一个显示所有用户应用程序的 Android 应用程序。我遇到的问题是某些应用程序被多次显示。我不知道如何检查与包相关的活动,但我认为这是与此类似的情况:
Android:如何获取已安装活动的列表,就像它们出现在启动器中一样,没有重复
Intent 解决方案不显示任何重复项,但我将如何使用类似的内容在 GridView 中显示?
编辑:感谢您的快速回复。这是我已经获得包裹的方式。但是,我没有使用 0 标志。替换 0 标志后,我仍然收到重复。是否与 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 问题: