OnChildRemoved Firebase Android

时间:2017-08-05 08:25:47

标签: android firebase firebase-realtime-database

我试图从ArrayAdapter中删除

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
    Toast.makeText(getApplicationContext(),dataSnapshot.getKey(),Toast.LENGTH_LONG).show();
    String id = dataSnapshot.getKey();
    Card card1 = new Card(id);
    cardArrayAdapter.remove(card1);
    listView.setAdapter(cardArrayAdapter);
    cardArrayAdapter.notifyDataSetChanged();
}

如果我在cardArrayAdapter.add中使用onChildRemoved,那么它会在listView中添加新的子项。 但是,如果我在cardArrayAdatper.remove

中从Firebase中删除,则onChildAdded无法从列表中删除

我做了这个

Card card = new Card(dataSnapshot.getKey(), lat.getValue().toString(), tempLatitude, address);
cardArrayAdapter.add(card);
listView.setAdapter(cardArrayAdapter);

这是我的数据库结构 enter image description here

1 个答案:

答案 0 :(得分:0)

创建新对象并期望删除特定卡时,无法从适配器中删除卡对象。

使用cardArrayAdapter.remove(new Card(id));表示您正在从适配器中删除刚刚创建的卡对象。你需要做的是根据id找到所需的卡片对象,然后将其删除:

cardArrayAdapter.remove(foundedCardObject)

希望它有所帮助。