Android ArrayList不包含其内容

Android ArrayList不包含其内容,android,arraylist,Android,Arraylist,我有一个包含应用程序包名称的列表。 我想隐藏其中的一些,所以我得到了一个SQLIte数据库,其中包括应该隐藏的packageNames 大小为1,有一个名为=“com.xiaomi.midrop”的包 所以我有一个清单;AppDrawer有一个getter和setter 私有字符串packageName;私有字符串appName 列表中还有一个Getter和Setter: 仅字符串packageName 我有一个带有ResolveName的for循环,所以PackageNames for(Res

我有一个包含应用程序包名称的列表。 我想隐藏其中的一些,所以我得到了一个SQLIte数据库,其中包括应该隐藏的packageNames

大小为1,有一个名为=“com.xiaomi.midrop”的包

所以我有一个清单;AppDrawer有一个getter和setter
私有字符串packageName;私有字符串appName
列表中还有一个Getter和Setter:
仅
字符串packageName

我有一个带有ResolveName的for循环,所以PackageNames

for(ResolveInfo resolveInfo : resolveInfosAppDrawer){
        String packageName = resolveInfo.activityInfo.packageName;
        if(listHide.contains(new AppHide(resolveInfo.activityInfo.packageName))){
            Toast.makeText(context, "HIDE IT", Toast.LENGTH_SHORT).show();
        }else{

        }
        appDrawerList.add(new AppDrawer(resolveInfo.activityInfo.packageName, (String) resolveInfo.loadLabel(context.getPackageManager())));
    }

但它总是不起作用,即使列表(AppHide)中也充满了一个PackageName。

试试这种逻辑。您需要迭代listHide来检查每个包名

  for (ResolveInfo resolveInfo : resolveInfosAppDrawer) {
    String packageName = resolveInfo.activityInfo.packageName;
    boolean isForDrawer = true;
    for (AppHide hide : listHide) {
    if (hide.getPackagEName().contentEquals(packageName)) {
    isForDrawer = false;
    Toast.makeText(context, "HIDE IT", Toast.LENGTH_SHORT).show();
    }
    }
    if (isForDrawer) {
    appDrawerList.add(new AppDrawer(resolveInfo.activityInfo.packageName, (String) resolveInfo.loadLabel(context.getPackageManager())));
    }
    }

什么是listHide及其类型?它是Listtry for(int j=0;j