显示与搜索词相关的项目的SearchView



我如何在android中拥有一个搜索功能,显示与用户键入的内容类似的项目?例如:

我有项目"距离"、"税"one_answers"颜色"。如果用户键入公里、米或距离,则显示";距离";;如果用户键入Tax、Money或Bill,则显示";税收;;如果用户键入HEX、RGB或Color,则显示";颜色";

现在,我有这个:

val applets = arrayOf("distance","tax","color")
val conversionsLength = this.resources.getStringArray(R.array.conversionsLength)
val appletAdapter : ArrayAdapter<String> = ArrayAdapter(this, android.R.layout.simple_list_item_1, applets)
binding.appletList.adapter = appletAdapter
binding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean { binding.searchView.clearFocus(); return false }

override fun onQueryTextChange(newText: String): Boolean {
if (applets.joinToString("n").contains(newText))
{
appletAdapter.filter.filter(newText)
}
if (conversionsLength.joinToString("n").contains(newText))
{
//TODO appletAdapter.add("distance") didn't work
}
else appletAdapter.filter.filter(applets.joinToString("n"))
return false
}
})

//TODO中我能做些什么,以便除了用第一个contains()过滤的项目外,它显示我希望它显示的字符串

我不太明白这个问题,但我有这个问题。您必须有一些具有搜索匹配项的数组,例如:

val distance_matches = listOf("Kilometer", "Mi", "distance")
val tax_matches = listOf("Tax", "Money", "Bill")
val color_matches = listOf("HEX", "RGB", "Color")
onTextChange(newText: String) : Boolean {
if (newText in distance_matches) {
//FILTER DISTANCE
return true
}
if (newText in tax_matches) {
//FILTER TAX
return true
}
if (newText in color_matches) {
//FILTER COLOR
return true
}
}

但要使它们匹配良好,匹配项必须与输入的文本相同。我希望这就是你占领的地方

最新更新