Course Content
-
Сохраняем данные в Room + ViewModel
- Коротко об Android Architecture Components и Room
- Создание проекта и добавление необходимых зависимостей
- Создание Entity
- Создание DAO
- Знакомство с LiveData
- Создание базы данных Room
- Знакомство с патерном Repository (Репозиторий) и создание слоя для доступа к данным
- Создание ViewModel
- Создание ячейки списка для отображения UI
- Создание адаптера и добавление RecyclerView
- Добавление записи в БД используя Room
- Создание Activity
- Подключение к базе данных Room
- Итоги
Создание адаптера и добавление RecyclerView
Для отображения данных в RecyclerView создайте адаптер как показано ниже
class WordListAdapter internal constructor(
context: Context
) : RecyclerView.Adapter<WordListAdapter.WordViewHolder>() {
private val inflater: LayoutInflater = LayoutInflater.from(context)
private var words = emptyList<Word>() // Cached copy of words
inner class WordViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val wordItemView: TextView = itemView.findViewById(R.id.textView)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WordViewHolder {
val itemView = inflater.inflate(R.layout.recyclerview_item, parent, false)
return WordViewHolder(itemView)
}
override fun onBindViewHolder(holder: WordViewHolder, position: Int) {
val current = words[position]
holder.wordItemView.text = current.word
}
internal fun setWords(words: List<Word>) {
this.words = words
notifyDataSetChanged()
}
override fun getItemCount() = words.size
}
После этого добавьте RecyclerView в метод onCreate() вMainActivity. В методе onCreate() после setContentView:
val recyclerView = findViewById<RecyclerView>(R.id.recyclerview) val adapter = WordListAdapter(this) recyclerView.adapter = adapter recyclerView.layoutManager = LinearLayoutManager(this)
Запустите приложение, чтобы проверить, что все работает корректно. Пока мы не добавили ни одного элемента, поэтому в данный момент экран приложения будет пустой.
Уже в следующем уроке мы заполним базу данных тестовыми значениям и отобразим из в списке!
Предыдущий
Создание ячейки списка для отображения UI
Следующий
Добавление записи в БД используя Room