2013-06-24 167 views
0

IM比較數據庫值與packageinfo這是截圖http://imgur.com/psGyBGo如何列表與字符串比較

我得到list列出的ArrayList = db.getAllApps()所有數據庫值;

如何將此列表與安裝ap包名稱列表進行比較?下面是我的代碼管理單元plz幫助我如何比較?此行不過濾值
IF((p.packageName).equals(數組列表))如何過濾值,以便匹配,如果你想看到只顯示列表與數據庫

    private List<App> loadInstalledApps(boolean includeSysApps) { 
    List<App> apps = new ArrayList<App>(); 

    // the package manager contains the information about all installed apps 
    PackageManager packageManager = getPackageManager(); 

    List<PackageInfo> packs = packageManager.getInstalledPackages(0); 
List arraylist = db.getAllApps(); 

    for (int i = 0; i < packs.size(); i++) { 
     PackageInfo p = packs.get(i); 
     ApplicationInfo applicationInfo = p.applicationInfo; 




// if (arraylist.equals(p.packageName)) 

     if ((p.packageName).equals(arraylist)) 


     { 
      App app = new App(); 
      app.setTitle(p.applicationInfo.loadLabel(packageManager) 
        .toString()); 
      app.setPackageName(p.packageName); 
      app.setVersionName(p.versionName); 
      app.setVersionCode(p.versionCode); 
      CharSequence description = p.applicationInfo 
        .loadDescription(packageManager); 
      app.setDescription(description != null ? 
     description.toString() 
        : ""); 
      apps.add(app); 
      // } 
     } 
    } 
    return apps; 
    } 
+0

我沒有明白。你想要一個比較兩個列表的函數嗎?在這種情況下使用上面的搜索表單。 – Rob013

+1

請停止反覆詢問同一個問題。 –

+0

我只是隻想在列表視圖中顯示包名稱存在於數據庫中,所以我如何比較它們? –

回答

2

找到列表

if(arraylist.contains(p.packageName)) { 
     //your code here 
} 

此代碼的工作,如果ArrayList的是字符串列表,如果是其他類,你有兩個選擇

1)比較所有的對象

if(arraylist.contains(p)) { 
     //your code here 
} 

2)通過packageName(或其他屬性)進行比較

bool isInList = false; 
for (MyClass object : array list) { 
    if (object.packageName.equals(p.packageName)) { 
     isInList = true; 
     break; 
    } 
} 
if (isInList) { 
    //your code here 
} 
+0

包含檢查引用,而檢查包存在需要使用.equals()你的回答是錯誤的。 – piotrpo

+0

好吧,我會檢查你的解決方案 –

+0

哇是幫助我你的gr8我發佈這麼多沒有人幫助我只有你仔細瞭解我的問題,你很sooo –

1

匹配該值如果packageName是IN的packageInfo列表中,那麼這將是最容易有另一個循環,你在你的ArrayList比較packageName每個packageInfopackageName

我假設你.equals()方法的工作,因爲我不知道什麼是PackageInfo對象是

for (PackageInfo pi : arrayList) { 
    if (pi.equals(p) { 
     //your code here 
    } 
} 
+0

什麼是p ???????? –

+0

@HayyaAnam p是我在你的代碼中找到的變量'PackageInfo p = packs.get(i);' – Stephan