Kotlin Android MVVM RecyclerView不显示任何数据

问题描述 投票:0回答:1

我正在尝试使用ROOM实现MVVM体系结构。我有保存我的数据的数据库。但是它不会在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)


    }
}
android kotlin mvvm android-recyclerview android-mvvm
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.