creatorplanet / Kotlin-with-Firebase

0 stars 0 forks source link

Recyclerview :: get user list #3

Open creatorplanet opened 2 years ago

creatorplanet commented 2 years ago

*

creatorplanet commented 2 years ago

MainActivity.kt

class MainActivity : AppCompatActivity() {
lateinit var binding : ActivityMainBinding var array : MutableList = arrayListOf() var uids : MutableList = arrayListOf()

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

    // Get user list
    FirebaseFirestore.getInstance().collection("users").get().addOnCompleteListener{
        task ->
        array.clear()
        uids.clear()
        for ( item in task.result!!.documents) {
            array.add(item.toObject(UserDTO::class.java)!!)
            uids.add(item.id)
        }
        binding.userListRecyclerview.adapter?.notifyDataSetChanged()
    }
    binding.userListRecyclerview.layoutManager = LinearLayoutManager(this)
    binding.userListRecyclerview.adapter = RecyclerviewAdaptor()
}
//List
inner class RecyclerviewAdaptor : RecyclerView.Adapter<RecyclerviewAdaptor.ViewHolder>(){
    override fun onCreateViewHolder( parent: ViewGroup, viewType: Int ): RecyclerviewAdaptor.ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_user,parent,false)
        return ViewHolder(view)
    }
    override fun getItemCount(): Int {
        return array.size
    }
    override fun onBindViewHolder(holder: RecyclerviewAdaptor.ViewHolder, position: Int) {
        holder.itemEmail.text = array[position].email
        holder.itemCountry.text = array[position].country
    }
    inner class ViewHolder(view : View) : RecyclerView.ViewHolder(view){
        val itemEmail: TextView = view.findViewById<TextView>(R.id.itemEmail)
        val itemCountry: TextView = view.findViewById<TextView>(R.id.itemCountry)

    }
}

}

activity_main.xml

<layout> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/user_list_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <layout>

item_user.xml