Это - некоторые файлы библиотеки, которые не были так или иначе удалены, в то время как эволюция была удалена или заменена. Хорошо вот то, что необходимо сделать.
sudo apt-get update
в терминале решенная проблема ;-)
Вот версия Kotlin Класса Адаптера, который загружает данные из локальной базы данных через Комнату:
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.Filter
import android.widget.Filterable
import android.widget.TextView
import ...MyFinderDatabase
import ...R
import ...model.SearchResult
class SearchCompleteAdapter(context: Context, val resourceId: Int): ArrayAdapter<SearchResult>(context, resourceId), Filterable {
private val results = mutableListOf<SearchResult>()
override fun getCount() = results.size
override fun getItem(position: Int) = results[position]
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val view = convertView ?: LayoutInflater.from(context).inflate(resourceId, parent, false)
val textView = view.findViewById<TextView>(R.id.autocomplete_name)
textView.text = getItem(position).fullName
return view
}
override fun getFilter() = object : Filter(){
override fun performFiltering(constraint: CharSequence?): FilterResults {
val filterResults = FilterResults()
val db = MyRoomDatabase.getDatabase(context.applicationContext)
val dbResults = db.resultDao().findWithNameLike(String.format("%%%s%%", constraint.toString()))
filterResults.values = dbResults
filterResults.count = dbResults.size
results.clear()
results.addAll(dbResults)
return filterResults
}
override fun publishResults(constraint: CharSequence?, results: FilterResults?) {
if((results != null) && (results.count > 0)){
notifyDataSetChanged()
}
else{
notifyDataSetInvalidated()
}
}
override fun convertResultToString(resultValue: Any?): CharSequence {
val searchResult = resultValue as SearchResult
return searchResult.fullName
}
}
}
определение метода ДАО:
@Query("select * from SearchResult where full_name like :name and type = 'USER_TYPE'")
fun findWithNameLike(name: String): List<SearchResult>