2012-07-28 31 views
1

我正在循環列表並試圖將一列應用程序附加到一個字符串,但到目前爲止,我只能追加1個應用程序。它工作正常,如果我嘗試添加到數組並顯示它在ListView中。用於在Android中循環列表以獲取權限列表

for (PackageInfo pi : apps) { 
    String[] permissions = pi.requestedPermissions; 
    String internetpermissionsText = ""; 
    if (permissions != null) { 
     for (String permission : permissions) { 
      Log.d("TAG", permission); 
         if (permission.equals("android.permission.INTERNET")) { 

          String appname=pi.applicationInfo.loadLabel(packageManager).toString(); 


          internetpermissionsText += appname + "\n"; 

          Log.e("TAG", "Im in!"); 

          } 

          internetPermission.setText(internetpermissionsText); 


         } 

的應用程序的列表應該顯示像

Angry Birds 
Facebook 
Twitter 
Internet 

而是它只是顯示

Angry Birds 

logcat的(太多的垃圾郵件) http://pastebin.com/PEs8z0Kf

+0

什麼問題? – pmod 2012-07-28 20:42:00

+0

更新了帖子 – dythe 2012-07-28 20:45:27

+0

你應該發佈你的實際循環。由於您只有一個輸出,因此錯誤可能出現在循環中,上面的代碼中缺少該錯誤。 – 2012-07-28 20:49:05

回答

1

嘗試這種方式,正如我在上面的評論中所述:

String internetpermissionsText = ""; 
for (PackageInfo pi : apps) { 
    String[] permissions = pi.requestedPermissions; 
    if (permissions != null) { 
     for (String permission : permissions) { 
      Log.d("TAG", permission); 
      if (permission.equals("android.permission.INTERNET")) { 
       String appname=pi.applicationInfo.loadLabel(packageManager).toString(); 
       internetpermissionsText += appname + "\n"; 
       Log.e("TAG", "Im in!"); 

      } 
     } 
    } 
} 
internetPermission.setText(internetpermissionsText); 
+0

我得到一個NullPointerException如果我這樣做 – dythe 2012-07-28 21:37:57

+0

你在哪裏得到NPE? – t0mm13b 2012-07-28 21:38:55

+0

internetPermission.setText(internetpermissionsText);此行 – dythe 2012-07-28 21:40:57