【问题标题】:Filtering male and female results searchview with recylerview android使用recyclerview android过滤男性和女性结果searchview
【发布时间】:2016-01-12 11:30:43
【问题描述】:

我的一个标签中有一个带有 searchview 的 recylerview,其中包含人们的性别。当我使用searchview过滤男性时,女性结果也出现了,这是因为女性包含男性,我写了这个但它似乎不起作用,我尝试在线搜索但没有任何有用的东西。

if (gender.contains(query)) {
            filteredModelList.add(model);
            if (query.startsWith("male".toLowerCase())){
                filteredModelList.remove(model.gender.startsWith("female".toLowerCase()));

          }
    }

我想要做的是,当用户搜索男性时,我希望女性结果不显示,同样,如果人们搜索女性,我不希望男性结果显示。

为了让你更好地理解,我贴了几个屏幕截图:

【问题讨论】:

  • 您能提供更多信息吗?比如什么是filteredModelList?它是结果列表、任何其他已知类还是自定义类?它与适配器有什么关系?什么是查询?

标签: android list android-recyclerview searchview


【解决方案1】:

查询等于“男”时可以这样搜索具体情况:

if(gender.contains(query))
{
    if(query.toLowerCase().equals("male"))
    {
        if(gender.toLowerCase().startsWith(query.toLowerCase()))
        {
            filteredModelList.add(model);
        }
    }
    else
    {
        filteredModelList.add(model);
    }
}

所以只有当你输入“男”时,“女”才不会显示。

【讨论】:

  • 嗨,这听起来很正确,但是当我在代码中实现它试图解决这个问题时会崩溃,我会在找到解决方案时通知你。
  • 已解决!但是,我还有另一个问题,将来我会在列表中添加更多数据,例如人名 + 性别,例如约翰·马累 |艾玛女,有了这个我就不能用startsWith了,有没有其他方法可以推荐?
  • 现在直到 'mal' 女性和男性都出现了,但是当我输入 'male' 时什么都没有出现。列表为空
  • 嗯,我认为问题出在代码的另一部分。我试过这个,当我输入“mal”时,它进入else部分,当我输入“男性”时,它进入if if部分。它应该工作..
  • 奇怪,我将再次检查我的代码。你用recyclerview试试你的吗?
【解决方案2】:

if (gender.contains(" " + query + " "))

丑陋但快速修复,希望能奏效。如果您想要更好的解决方案,请提供更多代码。

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 2016-09-02
    • 2017-06-20
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多