işaretlendiğinde ben recyclerView
FirebaseRecyclerAdapter
bağlanan silinir ve ViewHolder
onay kutularını için OnClickListener
ayarlayın.RecyclerView, yanlış satır bir onay kutusu
Benim fikrim: Arka arkaya bir onay kutusu işaretli olduğunda
, adaptör getRef(clickedPosition)
ve Firebase veritabanından satırı silmek removeValue
arayacak. Bundan sonra, populateViewHolder
çağrılır ve uygulama veritabanından en son verileri gösterecektir.
Sorun: Listenin altından silersem, sorun olmaz. Ancak, onay kutularını rasgele kontrol ediyorsanız, yanlış satırın silineceğini ve bazen de NULL
konumuna sahip olacağını ve Android uygulaması çökmesine neden olacağını görürsünüz. Konumu kaydediyorum, bir satır silindikten sonra onay kutularının konumu doğru şekilde güncellenmiyor gibi görünüyor. Sorun, geri dönüşüm görünümünde bir element silinmesine ilişkin kalan elemanların pozisyonları güncellenen sakın edilir
@Override
protected void populateViewHolder(MessageViewHolder messageViewHolder, Task t, int i) {
final DatabaseReference ref = getRef(i);
messageViewHolder.mText.setText(t.getName());
messageViewHolder.chkBox.setTag(ref);
messageViewHolder.chkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
String key = cb.getTag().getKey();
adapter.getRef(key).removeValue();
}
});