Open creatorplanet opened 2 years ago
class MainActivity : AppCompatActivity() {
lateinit var binding : ActivityMainBinding
var array : MutableList
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)
}
}
}
<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>
*