Android 来自已安装应用程序的带有图像的自定义ListView

Android 来自已安装应用程序的带有图像的自定义ListView,android,image,listview,Android,Image,Listview,我正在尝试制作一个包含图像和文本的列表视图。我一直在遵循这个例子:但我希望列表是关于已安装的应用程序及其图标的。我一直遵循另一个示例来获取图标: 我已经能够列出图标列表,但无法从已安装的应用程序中获取它们。如果我使用我的绘图工具中的任何图片,代码都可以完美地工作。因此,问题是如何获取图标并将其添加到我的列表视图中 代码有点大,我会尽量缩小它,稍后再发布。谢谢好吧,在努力使它易于阅读并发布在这里的同时,我找到了解决方案。这是神奇的密码: public void onCreate(Bundle sa

我正在尝试制作一个包含图像和文本的
列表视图。我一直在遵循这个例子:但我希望列表是关于已安装的应用程序及其图标的。我一直遵循另一个示例来获取图标:

我已经能够列出图标列表,但无法从已安装的应用程序中获取它们。如果我使用我的绘图工具中的任何图片,代码都可以完美地工作。因此,问题是如何获取图标并将其添加到我的
列表视图中


代码有点大,我会尽量缩小它,稍后再发布。谢谢

好吧,在努力使它易于阅读并发布在这里的同时,我找到了解决方案。这是神奇的密码:

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);

    }
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.apps\u列表\u视图);
rowItems=新的ArrayList();
List packs=getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

对于(int i=0;我认为将您的答案标记为已接受是一种很好的做法。不过,感谢您分享这个问题。