【发布时间】:2020-04-16 20:18:16
【问题描述】:
我创建了一个将用户添加到数据库的简单应用程序。
我现在正尝试在我的活动中显示这些用户(实时更新)。
我创建了一个ListView,我相信我需要使用addChildEventListener 将数据分配给该列表视图(数组?)。我以前从来没有这样做过,所以我希望能得到一些帮助。
请在下面查看我的代码。谢谢你。
Users.kt
data class Users(
var name: String? = "",
var telephone: String? = ""
)
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".ui.MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_user_name"
android:hint="Name"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_user_telephone"
android:hint="Telephone"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_add_user"
android:text="Add User"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv_show_users"/>
</LinearLayout>
MainActivity.kt
package com.example.only_db.ui
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.example.only_db.R
import com.example.only_db.db.Users
import com.google.firebase.database.*
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private lateinit var mDatabase: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mDatabase = FirebaseDatabase.getInstance().reference
bt_add_user.setOnClickListener {
val name = et_user_name.text.toString().trim()
val telephone = et_user_telephone.text.toString().trim()
writeNewUser(name, telephone)
}
val childEventListener = object : ChildEventListener {
override fun onCancelled(p0: DatabaseError) {
TODO("Not yet implemented")
}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {
TODO("Not yet implemented")
}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {
TODO("Not yet implemented")
}
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
TODO("Not yet implemented")
}
override fun onChildRemoved(p0: DataSnapshot) {
TODO("Not yet implemented")
}
}
mDatabase!!.addChildEventListener(childEventListener)
}
private fun writeNewUser(name: String, telephone: String) {
val user = Users(name, telephone)
mDatabase.child("Users").push().setValue(user)
}
}
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database