Я хочу выполнить поиск в базе данных с помощью EditText, а затем добавить элементы в RecylerView. У меня проблема с добавлением нескольких элементов из-за TextChangedListener и adapter.notifyDataSetChanged. Я могу добавить только один элемент. (Запрос должен быть в потоке). Как добавить каждый предмет, который я искал?
CostDao.kt
@Dao
interface CostDAO {
@Query("select * from cost where name like :name")
fun getByName(name : String) : List<Cost>
В MainActivity.kt я получил это:
fun Threads() {
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(
s: CharSequence, start: Int,
count: Int, after: Int
) {
}
override fun onTextChanged(
s: CharSequence, start: Int,
before: Int, count: Int
) {
Thread {
val itemsList = db?.costDAO()!!.getByName(s.toString())
runOnUiThread {
recyclerView.adapter = MyAdapter(this@MainActivity, itemsList)
adapter.notifyDataSetChanged()
}
}.start()
}
override fun afterTextChanged(s: Editable) { }
Теперь я могу просто искать один элемент, элемент отображается, и после изменения текста редактирования он исчезает, я хочу, чтобы он оставался, я хочу, чтобы каждый элемент, который я искал, автоматически добавлялся в RecyclerView.