0

我想在我的列表視圖中添加getPackageManager的應用程序圖標。我嘗試了這樣的:getPackageManager在列表視圖中的圖標

try { 
      // Icon 
      Drawable icon = pm.getApplicationIcon(info.processName); 
      Drawable default_icon = pm.getDefaultActivityIcon(); 

      CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA)); 
      Log.w("LABEL", "Name" + c.toString()); 
      String pName = info.processName; 
      adapter.add(icon + c.toString().toUpperCase() + "\n" + info.processName); 
      } 

但它只返回一個字符串。如果可能的話,我希望圖標不是字符串。可能嗎?

+0

你在Default_icon得到什麼?和圖標呢? –

+0

default_icon不考慮它.. info.processName是該進程的名稱.. listview顯示所有當前應用程序活動.. –

回答

0

使用這條線在你的列表視圖適配器以獲取應用程序圖標

PackageInfo packageInfo = (PackageInfo) getItem(position); 
    Drawable appIcon = packageManager.getApplicationIcon(packageInfo.applicationInfo); 
    String appName = packageManager.getApplicationLabel(
      packageInfo.applicationInfo).toString(); 
    appIcon.setBounds(0, 0, 40, 40); 
    holder.apkName.setCompoundDrawables(appIcon, null, null, null); 
    holder.apkName.setCompoundDrawablePadding(15); 
    holder.apkName.setText(appName); 

請參考下網站的完整源代碼

http://theopentutorials.com/tutorials/android/listview/how-to-get-list-of-installed-apps-in-android/

+0

什麼是'holder.apkName'? –

+0

我的意思是持有人?我在哪裏創建它? –

+0

請參閱下面的鏈接瞭解完整的代碼 –