llf2580 2023-03-21 15:02 采纳率: 66.7%
浏览 19
已结题

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对象
  • 写回答

2条回答 默认 最新

  • 码上就疯 2023-03-21 16:12
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月21日
  • 已采纳回答 3月21日
  • 修改了问题 3月21日
  • 创建了问题 3月21日

悬赏问题

  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?