【问题标题】:Filtering icons from recylerview based on text in searchview android根据searchview android中的文本过滤recylerview中的图标
【发布时间】:2016-01-16 23:35:40
【问题描述】:

我已按照本教程进行操作,并已在我的应用程序 https://github.com/Wrdlbrnft/Searchable-RecyclerView-Demo 中成功实现了带有 searchview 的 recylerview。但是,现在我没有在我的 recylerview 中有文本,我有代表用户在线和离线两种状态的图标,我想要做的是当用户在 searchView 中输入在线时,我只希望在线图标显示并且类似地他们键入 Offline 我只想显示离线图标。

要过滤文本,如示例所示我已经这样做了;

if (personStatus.contains(query)) {
             filteredModelList.add(model);

            }

这非常适用于我的 recylerview 中基于文本的结果,但是,我想根据 recylerView 中的图标进行过滤。

图标可以是 R.drawable.Online 或 R.drawable.Offline。我有一个名为 icon 的 imageView。

到目前为止我已经尝试过什么;

if(query.toLowerCase().equals("online") {

                filteredModelList.add(model.getIcon().getDrawable(R.drawable.online));

            }

这似乎不起作用,我在 getIcon 上收到一个错误,它说无法解析方法 getIcon。我确实有一个 getIcon 方法,如上面 exampleModel 类中的示例所示;

我想做的是;

IF searchView text = "Online" THEN
   Only show recylerview items that contains icon Online

我希望我已经充分解释了自己,如果没有请告诉我。

【问题讨论】:

    标签: android icons filtering android-recyclerview android-search


    【解决方案1】:

    在处理大型数据集时,您使用的方法可能会很慢,因为您正在主线程上进行搜索。如果搜索没有在 8 毫秒内完成,您将遇到垃圾。

    比较您使用query.toLowerCase().equals("online") 很好。您需要将该逻辑移动到应实现Filterable 的适配器中。您需要在模型中切换该在线/离线状态,例如:setStatus(Status.ONLINE)setStatus(Status.OFFLINE) 因此迭代查找特定状态的所有项目很容易,只需使用来自SearchView 的条件和约束,即@987654327 @。

    看看我的回答here。这或多或少是我提到的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      相关资源
      最近更新 更多