
[英]Search filter in listview for array of strings with android 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”,这将只显示“质量转换”(而不是它和“长度转换”); 因为listForLength
和listForMass
都包含“kil”,分别在“kilometer”和“kilogram”内。 有没有办法让我过滤 ArrayList、多个字符串,或者允许通过过滤器传递一个字符串,这样我就可以看到两者? 谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.