holder.btn.setOnClickListener{ view ->
Toast.makeText(view.context,"${memo.name} 버튼클릭!", Toast.LENGTH_SHORT).show()
Log.v("커스텀어답터","${memo.name}발생")
//리스트테스트에서 가져온것
val data_array: MutableList<Data> = mutableListOf()
Log.v("커스텀어답터","${database}발생1")
database.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot?) {
Log.v("커스텀어답터","${dataSnapshot}발생2")
database.child("list${memo}").setValue("${memo.name}")
Log.v("커스텀어답터","${memo.name} 저장완료")
}
override fun onCancelled(p0: DatabaseError?) {
println("Failed to read value.")
}
})
}
이런식으로 원래있던 리사이클러뷰에서 버튼을 누르면 다른 리사이클러뷰에 추가가되는 버튼을 만들어서 작동을합니다. 그리고 어플을 종료후 다시 켜면 추가한대로 잘 리사이클러뷰에 반영이 됩니다.
그리고 삭제버튼을 누르면 삭제가 잘됩니다.
근데 문제는 추가버튼으로 추가 후 어플을 종료하지않고 데이터를 추가한 리사이클러뷰에서 삭제버튼을 누르면 파이어베이스에 삭제랑 생성이 반복되면서 무한 증식으로 인해 파이어베이스가 멈추고 어플도 멈추는 문제가 생겼습니다. 오류를 해결하고 싶은데 어떻게 해야할지 모르겠네요....
아래는 삭제하는 버튼입니다.
override fun onBindViewHolder(holder: calendar_Holder, position: Int) {
val memo = listData.get(position)
holder.itemView.setOnClickListener { view ->
Toast.makeText(view.context,"${memo} 아이템클릭!", Toast.LENGTH_SHORT).show()
}
//버튼클릭
holder.btn.setOnClickListener{ view ->
Toast.makeText(view.context,"${memo.name} 버튼클릭!", Toast.LENGTH_SHORT).show()
Log.v("캘린더어답터","${memo.name}발생")
//리스트테스트에서 가져온것
Log.v("캘린더어답터","${database}발생1")
database.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot?) {
Log.v("캘린더어답터","${dataSnapshot}발생2")
Log.v("캘린더어답터", "${memo.name}확인 중")
database.child("list${memo}").removeValue()
Log.v("캘린더어답터", "${memo.name} 삭제완료")
}
override fun onCancelled(p0: DatabaseError?) {
println("Failed to read value.")
}
})
}
holder.setData(memo)
}
}