2012-10-24 37 views
0

嗯,我試圖做一個ListView與圖像和文字。我一直在關注這個例子:Android: Custom ListView with Image and Text using ArrayAdapter但我希望列表是關於已安裝的應用程序及其圖標。我一直在關注另一個示例以獲取圖標:Get installed Applications with Name, Package Name, Version and Icon自定義ListView與圖像,從應用程序安裝

我已經能夠使用圖標創建列表,但無法從安裝的應用程序獲取它們。如果我使用我的drawable中的任何圖片,代碼完美無缺。所以問題是我如何獲得圖標並將它們添加到我的ListView

代碼有點大,我會盡量縮小它的大小,並在以後發佈。謝謝

回答

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

    } 

其他一切就像上面發佈的鏈接一樣。

+0

我認爲將您的答案標記爲已接受是一種很好的做法。不過謝謝您分享這個問題。 – Kgrover

+0

是的,我知道,但它說,我必須等到明天才能將其標記爲已接受... –