繁体   English   中英

SearchView 过滤一个数组(或多个字符串)

[英]SearchView filter an array (or multiple strings)

我有一个 SearchView 和一个 ListView ,其中包含我的应用程序的一些功能。 文中说,“长度换算”、“质量换算”、“二维码扫描仪”等。

我希望用户能够搜索“长度”、“公里”或“距离”并弹出“长度转换”,其他活动也类似。 我有这个:

val applets = arrayListOf(
    "length conversion",
    "mass conversion",
    "QR code scanner"
)
val listForLength = arrayListOf(
    "kilometer"
    "distance"
)
val listForMass = arrayListOf(
    "kilogram"
    "weight"
)
val appletAdapter : ArrayAdapter<String> = ArrayAdapter(this, R.layout.misc_dropdownitem_large, applets)



searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
    override fun onQueryTextChange(textEntered: String): Boolean {
        if (newText in listForLength.joinToString("\n")) appletAdapter.filter.filter("length")
        if (newText in listForMass.joinToString("\n")) appletAdapter.filter.filter("mass")
        else appletAdapter.filter.filter(textEntered)
        return false
    }
}

如果我输入“长度”、“距离”或“公里”(或“长度”,因此用户不必完成整个单词),这将显示“长度转换”; 如果输入的文本都不在listForLength中,则将显示其他匹配的内容。

但是,如果我输入“kil”,这将只显示“质量转换”(而不是它和“长度转换”); 因为listForLengthlistForMass都包含“kil”,分别在“kilometer”和“kilogram”内。 有没有办法让我过滤 ArrayList、多个字符串,或者允许通过过滤器传递一个字符串,这样我就可以看到两者? 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM