【发布时间】:2021-10-27 11:41:17
【问题描述】:
因为我想实现一个搜索,如果有人在搜索栏中输入出生年份,那么所有出生在该特定年份的所有候选人都将显示在我的回收站视图中。
项目活动
class ItemsActivity : AppCompatActivity() {
private var mStorage:FirebaseStorage? = null
private var mDatabaseRef:DatabaseReference? = null
private var mDBListener:ValueEventListener? = null
private lateinit var mCandidate:MutableList<Candidate>
private lateinit var listAdapter:ListAdapter
private lateinit var binding: ActivityItemsBinding
override fun onCreate(savedInstanceState: Bundle?) {
binding= ActivityItemsBinding.inflate(layoutInflater)
super.onCreate(savedInstanceState)
setContentView(binding.root)
binding.rvList.setHasFixedSize(true)
binding.rvList.layoutManager = LinearLayoutManager(this@ItemsActivity)
binding.pbLoding.visibility = View.VISIBLE
mCandidate = ArrayList()
listAdapter = ListAdapter(this@ItemsActivity,mCandidate)
binding.rvList.adapter = listAdapter
/**set Firebase Database*/
mStorage = FirebaseStorage.getInstance()
mDatabaseRef = FirebaseDatabase.getInstance().getReference("candidate_upload")
mDBListener = mDatabaseRef!!.addValueEventListener(object : ValueEventListener{
override fun onCancelled(error: DatabaseError) {
Toast.makeText(this@ItemsActivity,error.message, Toast.LENGTH_SHORT).show()
binding.pbLoding.visibility = View.INVISIBLE
}
override fun onDataChange(snapshot: DataSnapshot) {
mCandidate.clear()
for (teacherSnapshot in snapshot.children){
val upload = teacherSnapshot.getValue(Candidate::class.java)
upload!!.key = teacherSnapshot.key
mCandidate.add(upload)
}
listAdapter.notifyDataSetChanged()
binding.pbLoding.visibility = View.GONE
}
})
}
override fun onDestroy() {
super.onDestroy()
mDatabaseRef!!.removeEventListener(mDBListener!!)
}
}
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database