Так что я использую средство просмотра текста, чтобы показать предложения пользователей по тегам.В настоящее время я использую фиктивный список тегов.Когда пользователь начинает печатать, код должен создать еще один список тегов, представляющих собой объекты первого списка, отфильтрованные на основе того, содержат ли они последовательность символов, набираемую пользователем в данный момент.
Это прекрасно работает дляпервый символ, но, поскольку пользователь продолжает печатать, список больше не меняется.
Это мой код:
val tags = listOf(
"John Smith",
"Kate Eckhart",
"Emily Sun",
"Frodo Baggins",
"Yanay Zabary",
"Sze Lok Ho",
"Jesse Albright",
"Shayna something",
"Makena Lawrence"
)
questionTagsInput.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
val userInput = s.toString()
if (userInput == "") {
tagSuggestionRecycler.visibility = View.GONE
tagsFiltredAdapter.clear()
} else {
val relevantTags: List<String> = tags.filter { it.contains(userInput) }
for (t in relevantTags) {
tagSuggestionRecycler.visibility = View.VISIBLE
tagsFiltredAdapter.add(SingleTagSuggestion(t))
}
}
}
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
})