Android 使用FirebaseRecyclerAdapter和Kotlin的RecyclerView中的项目按钮
我的活动看起来像这样Android 使用FirebaseRecyclerAdapter和Kotlin的RecyclerView中的项目按钮,android,firebase,kotlin,firebase-realtime-database,android-recyclerview,Android,Firebase,Kotlin,Firebase Realtime Database,Android Recyclerview,我的活动看起来像这样 class UtfordringerActivity : AppCompatActivity() { private lateinit var mRecyclerView: RecyclerView lateinit var mDatabase: DatabaseReference override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedI
class UtfordringerActivity : AppCompatActivity() {
private lateinit var mRecyclerView: RecyclerView
lateinit var mDatabase: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_utfordringer)
supportActionBar?.title = "Utfordringer"
recyclerview_utfordringer.layoutManager = LinearLayoutManager(this)
// Firebase Realtime db noden vi setter inn i recyclerviewet
mDatabase = FirebaseDatabase.getInstance().getReference("Utfordringer")
mRecyclerView = findViewById(R.id.recyclerview_utfordringer)
updateToRecyclerView()
}
// Funksjon som henter data og setter inn i RecyclerViewet med FirebaseRecyclerAdapter
private fun updateToRecyclerView() {
val firebaseRecyclerAdapter = object : FirebaseRecyclerAdapter<Utfordringer, CustomViewHolder>(
Utfordringer::class.java,
R.layout.utfordring_item,
CustomViewHolder::class.java,
mDatabase
) {
override fun populateViewHolder(viewHolder: CustomViewHolder?, model: Utfordringer?, position: Int) {
if (model != null) {
viewHolder?.itemView?.recyclerview_text_1?.text = model.kategori
}
if (model != null) {
viewHolder?.itemView?.recyclerview_text_2?.text = model.utfordring
}
}
}
mRecyclerView.adapter = firebaseRecyclerAdapter
}
// Viewholder
class CustomViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
}
}
我不是在寻找一个完整的解决方案,也不是在没有学习的情况下免费得到任何东西。我只是希望有人能给我指出正确的方向,或者帮我一点忙:)你可以在recyclerView项目上点击listener。在项目适配器中,复制以下内容:
private var onClickListener: OnClickListener? = null
fun setOnClickListener(onClickListener: OnClickListener)
{
this.onClickListener = onClickListener
}
interface OnClickListener
{
fun onClick(position: Int, model: YourItemModel)
}
在onBindViewHolder中输入以下内容:
holder.itemView.setOnClickListener {
if (onClickListener != null)
{
onClickListener!!.onClick(position, model)
}
}
最后,在设置recyclerView时,只需使用如下适配器:
adapter.setOnClickListener(object : SomethingAdapter.OnClickListener
{
override fun onClick(position: Int, model: YourItemModel) {
}
})
您甚至可以使用向左/向右滑动来对recyclerView项执行某些操作。您可以在recyclerView项上单击listener。在项目适配器中,复制以下内容:
private var onClickListener: OnClickListener? = null
fun setOnClickListener(onClickListener: OnClickListener)
{
this.onClickListener = onClickListener
}
interface OnClickListener
{
fun onClick(position: Int, model: YourItemModel)
}
在onBindViewHolder中输入以下内容:
holder.itemView.setOnClickListener {
if (onClickListener != null)
{
onClickListener!!.onClick(position, model)
}
}
最后,在设置recyclerView时,只需使用如下适配器:
adapter.setOnClickListener(object : SomethingAdapter.OnClickListener
{
override fun onClick(position: Int, model: YourItemModel) {
}
})
您甚至可以使用左/右滑动对具有的recyclerView项执行某些操作