0

好吧,我正在尝试ListView用图像和文字制作一个。我一直在关注这个例子:Android: Custom ListView with Image and Text using ArrayAdapter但我希望列表是关于已安装的应用程序及其图标的。我一直在关注另一个示例来获取图标:Get installed Applications with Name, Package Name, Version and Icon

我已经能够制作带有图标的列表,但无法从已安装的应用程序中获取它们。如果我使用我的可绘制对象中的任何图片,则代码可以完美运行。所以问题是如何获取图标并将它们添加到我的ListView?

代码有点大,我会尽量把它变小,稍后再贴出来。谢谢

4

1 回答 1

1

好吧,在尝试使其易于阅读并在此处发布时,我找到了解决方案。这是神奇的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.apps_list_view);

    rowItems = new ArrayList<AppListRowItem>();

    List<PackageInfo> packs = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);
    for(int i=0;i<packs.size();i++) {
        PackageInfo p = packs.get(i);

        Pinfo newInfo = new Pinfo();
        newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
        newInfo.pname = p.packageName;
        newInfo.versionName = p.versionName;
        newInfo.versionCode = p.versionCode;
        newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());

            PackageNames = p.packageName;

            AppNames = p.applicationInfo.loadLabel(getPackageManager()).toString();

        test = p.applicationInfo.loadIcon(getPackageManager());

        AppListRowItem item = new AppListRowItem(test, AppNames, PackageNames);
        rowItems.add(item);

    }

其他一切就像上面发布的链接一样。

于 2012-10-24T23:36:16.850 回答