Andriod Studio:如何利用循环向list加入符合条件的数据?

我创建了SharedPreferences lt= getSharedPreferences("LoginTags", Context.MODE_PRIVATE);用来存放用户选择的三个标签,然后创建了应该RecommendItem类,里面也包含了三个标签,可以用getTag1\2\3()来获取标签。
现在我将所有创建的RecommendItem对象都加入表list,有一个或多个标签和用户选择的标签一致的再加入recommend_list表里,最后通过自定义的适配器显示到ListView里。利用Toast显示选择的标签也是没有问题的
请问下面代码有什么问题,为什么显示不出来?

// 取出用户选择的标签
SharedPreferences lt= getActivity().getSharedPreferences("LoginTags", Context.MODE_PRIVATE);
String tag1 = lt.getString("tag1","");
String tag2 = lt.getString("tag2","");
String tag3 = lt.getString("tag3","");

for(int i = 0;i < list.size();i ++) {// 遍历所有RecommentItem对象,选择符合条件的加入推荐列表
      RecommendItem item = list.get(i);
      String item_tag1 = item.getTag1();
      String item_tag2 = item.getTag2();
      String item_tag3 = item.getTag3();
      // System.out.println(item.getItemTitle()+"\ntag1:"+item.getTag1()+" tag2:"+item.getTag2()+" tag3:"+item.getTag3());

      Boolean tag1_show = item_tag1.equals(tag1) || item_tag1.equals(tag2) || item_tag1.equals(tag3);
      Boolean tag2_show = item_tag2.equals(tag1) || item_tag2.equals(tag2) || item_tag2.equals(tag3);
      Boolean tag3_show = item_tag3.equals(tag1) || item_tag3.equals(tag2) || item_tag3.equals(tag3);
      if(tag1_show || tag2_show || tag3_show)
             recommend_list.add(item);
 }

我将上面的代码替换成 下面的是能正常显示的,适配器是没有问题的

recommend_list.add(video1);
recommend_list.add(video2);
recommend_list.add(video3);
// video1、2、3是创建好的RecommendItem对象

1、list.size() 是否大于0?
2、tag中是否含有空格?
3、建议在循环中打印比较的数据,以及比较结果,方便定错

代码逻辑看着没有问题,建议使用调试或打印,看下tag1、tag2、tag3的值和list中的值是否有匹配的,有可能没有匹配到,导致recommend_list中没有加载到数据,或者你直接调试或打印recommend_list中的值看看,其次,是不是要调用下适配器的刷新方法