我试图在列表视图中检索从用户(作为电子邮件)收到的快照列表。一切正常,但问题在于“子级“已接收快照”下的第一项数据”未反映在列表视图中。”
列表中可见第一个条目(From:kkg@gmail.com)之后的每个条目... 但是,
- 为什么不是第一个?
- 以及如何解决此问题?
以下是我的活动代码(在Kotlin中)
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.ArrayAdapter
import android.widget.ListView
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.ChildEventListener
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.FirebaseDatabase
class SnapsActivity : AppCompatActivity() {
private lateinit var mAuth: FirebaseAuth
lateinit var snapsRecieved:ListView
var snapsArray:ArrayList<String> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_snaps)
snapsRecieved = findViewById(R.id.snapsRecievedLV)
var arrayAdapter:ArrayAdapter<String> = ArrayAdapter(this,android.R.layout.simple_list_item_1,snapsArray)
snapsRecieved.adapter = arrayAdapter
mAuth = FirebaseAuth.getInstance()
FirebaseDatabase.getInstance().reference.child("Users").child(mAuth.currentUser!!.uid).child("Snaps Recieved").addChildEventListener(object: ChildEventListener{
override fun onCancelled(p0: DatabaseError) {}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {}
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
snapsArray.add(p0.child("From").value as String)
arrayAdapter.notifyDataSetChanged()
}
override fun onChildRemoved(p0: DataSnapshot) {}
})
}
}