如何使用适配器仅显示应用程序中的有限数量的项目
how to show only limited amount of items from it the app using adapter
所以我只需要在屏幕上显示我的 Firebase 数据库中的三个对象。如何实施?
我使用此逻辑和适配器检索我的数据。
retrieveData()
setData(recyclerView)
private fun setData(rec_view:RecyclerView) {
val query = FirebaseDatabase.getInstance().reference.child("News")
val options = FirebaseRecyclerOptions.Builder<News>()
.setQuery(query, News::class.java)
.build()
adapter = object:FirebaseRecyclerAdapter<News, NewsViewHolder>(options){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NewsViewHolder {
Log.d("onCreateViewHolder_n", "onCreateViewHolder")
val newsView = LayoutInflater
.from(parent.context)
.inflate(R.layout.new_card_new, parent, false)
return NewsViewHolder(newsView)
}
override fun onBindViewHolder(holder: NewsViewHolder, position: Int, model: News) {
holder.setIsRecyclable(false)
holder.title.text = model.text
holder.timestamp.text = model.timestamp
holder.setNewsClickListener(object: NNewsClickListener {
override fun onClick(view: View, position: Int) {
startActivity(Intent(Intent.ACTION_VIEW).setData(Uri.parse(model.link)));
}
})
}
}
rec_view.adapter = adapter
}
private fun retrieveData() {
items.clear()
val db = FirebaseDatabase.getInstance()
.reference
.child("News")
db.addListenerForSingleValueEvent(object :ValueEventListener{
override fun onCancelled(error: DatabaseError) {
Log.d("ERROR", "" + error.message)
}
override fun onDataChange(snapshot: DataSnapshot) {
for(item_newsSnapShot in snapshot.children)
{
val item_news = item_newsSnapShot.getValue(News::class.java)
items.add(item_news!!)
}
}
})
}
我在某处发现我应该使用 getItemCount()
或类似的东西,但我不确定。如果您对我的问题有任何疑问,请随时提出。
如果您的其余代码已经正常工作,您可以限制 Firebase 仅检索 3 个项目:
val db = FirebaseDatabase.getInstance()
.reference
.child("News")
.limitToFirst(3)
我建议查看 sorting and filtering data 上的文档。
所以我只需要在屏幕上显示我的 Firebase 数据库中的三个对象。如何实施? 我使用此逻辑和适配器检索我的数据。
retrieveData()
setData(recyclerView)
private fun setData(rec_view:RecyclerView) {
val query = FirebaseDatabase.getInstance().reference.child("News")
val options = FirebaseRecyclerOptions.Builder<News>()
.setQuery(query, News::class.java)
.build()
adapter = object:FirebaseRecyclerAdapter<News, NewsViewHolder>(options){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NewsViewHolder {
Log.d("onCreateViewHolder_n", "onCreateViewHolder")
val newsView = LayoutInflater
.from(parent.context)
.inflate(R.layout.new_card_new, parent, false)
return NewsViewHolder(newsView)
}
override fun onBindViewHolder(holder: NewsViewHolder, position: Int, model: News) {
holder.setIsRecyclable(false)
holder.title.text = model.text
holder.timestamp.text = model.timestamp
holder.setNewsClickListener(object: NNewsClickListener {
override fun onClick(view: View, position: Int) {
startActivity(Intent(Intent.ACTION_VIEW).setData(Uri.parse(model.link)));
}
})
}
}
rec_view.adapter = adapter
}
private fun retrieveData() {
items.clear()
val db = FirebaseDatabase.getInstance()
.reference
.child("News")
db.addListenerForSingleValueEvent(object :ValueEventListener{
override fun onCancelled(error: DatabaseError) {
Log.d("ERROR", "" + error.message)
}
override fun onDataChange(snapshot: DataSnapshot) {
for(item_newsSnapShot in snapshot.children)
{
val item_news = item_newsSnapShot.getValue(News::class.java)
items.add(item_news!!)
}
}
})
}
我在某处发现我应该使用 getItemCount()
或类似的东西,但我不确定。如果您对我的问题有任何疑问,请随时提出。
如果您的其余代码已经正常工作,您可以限制 Firebase 仅检索 3 个项目:
val db = FirebaseDatabase.getInstance()
.reference
.child("News")
.limitToFirst(3)
我建议查看 sorting and filtering data 上的文档。