Я пытаюсь реализовать архитектуру MVVM, используя ROOM. У меня есть база данных, в которой хранятся мои данные. Но это не будет отображаться в RecyclerView
Что я делаю не так? Я вижу RecyclerView, но без каких-либо данных.
Я искал проблемы, но не вижу, в чем проблема.
Действия с recycyclerview:
class Main2Activity : AppCompatActivity() {
lateinit var FirebaseUser: FirebaseUser
lateinit var auth: FirebaseAuth
lateinit var userRef: DatabaseReference
// private lateinit var ProfileViewModel: ProfileViewModel
private val ADD_PROFILE_REQUEST = 1
private lateinit var profileViewModel: ProfileViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
Calendar.getInstance()
val bundle: Bundle = intent.extras
val adapterRoom = ProfileRecyclerViewAdapter()
val recyclerView = findViewById<RecyclerView>(R.id.recyclerViewMain2)
addNew.setOnClickListener {
startActivityForResult(
Intent(this, LoggedInUserView::class.java),
ADD_PROFILE_REQUEST
)
}
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.setHasFixedSize(true)
recyclerView.adapter = adapterRoom
@Suppress("DEPRECATION")
profileViewModel = ViewModelProviders.of(this).get(ProfileViewModel::class.java)
profileViewModel.allProfiles.observe(this,
Observer<List<Profile>> { t -> adapterRoom.setProfiles(t!!) })
}
}
Адаптер RecyclerView:
class ProfileRecyclerViewAdapter :
RecyclerView.Adapter<ProfileRecyclerViewAdapter.ProfileViewHolder>() {
private var profiles: List<Profile> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProfileViewHolder {
val itemView = LayoutInflater.from(parent.context)
.inflate(R.layout.profileview_item, parent, false)
return ProfileViewHolder(itemView)
}
override fun onBindViewHolder(holder: ProfileViewHolder, position: Int) {
val current = profiles[position]
holder.ProfileNameItemView.text = current.profilename
holder.ProfileunView.text = current.userLastname
holder.ProfilebdView.text = current.bornDay
holder.ProfilebmView.text = current.bornMonth
holder.ProfilebyView.text = current.bornYear
}
override fun getItemCount(): Int {
return profiles.size
}
fun setProfiles(profiles: List<Profile>) {
this.profiles = profiles
notifyDataSetChanged()
}
inner class ProfileViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val ProfileNameItemView: TextView = itemView.findViewById(R.id.ProfilenameIV)
val ProfileunView: TextView = itemView.findViewById(R.id.ProfileUnIV)
val ProfilebdView: TextView = itemView.findViewById(R.id.ProfileBdIV)
val ProfilebmView: TextView = itemView.findViewById(R.id.ProfileBmIV)
val ProfilebyView: TextView = itemView.findViewById(R.id.ProfileByIV)
}
}