【发布时间】:2021-03-09 11:49:47
【问题描述】:
我的活动看起来像这样...
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) {
}
}
在从 Firebase Realtime Db 获取数据并按预期工作后,我的 recyclerview 看起来像这样。还没有为 thrashcan 按钮实现任何东西,因为那是麻烦开始的时候。
我想让该按钮同时从 recyclerview 和 Firebase Realtime Db 中删除该项目。但据我了解,将 onClickListener 放在 recyclerview 中的按钮上会产生错误...
recyclerview 中的项目使用来自另一个 Activity 的此代码保存在 Firebase 中
private fun lagreUtfor() {
val kategori = utfordring_kat_text.text.toString()
val utfordring = utfordring_text.text.toString()
if (kategori.isEmpty() || utfordring.isEmpty()) {
Toast.makeText(this, "Vennligst fyll ut feltene", Toast.LENGTH_SHORT).show()
} else
if (kategori.isNotEmpty() || utfordring.isNotEmpty()) {
val map = mutableMapOf<String, Any>()
map["kategori"] = kategori
map["utfordring"] = utfordring
FirebaseDatabase.getInstance().reference
.child("/Utfordringer")
.push()
.setValue(map)
Toast.makeText(this, "Lagret", Toast.LENGTH_SHORT).show()
}
}
我不是在寻找完整的解决方案,也不是在不学习的情况下免费获得任何东西。我只是希望有人能指出我正确的方向或帮助我一点:)
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database android-recyclerview