2017-08-05 160 views
0

我想如果我使用cardArrayAdapter.addonChildRemoved然後它會添加新的孩子的ListView從ArrayAdapterOnChildRemoved火力地堡的Android

@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(); 
} 

刪除。 但cardArrayAdatper.remove如果我從火力地堡中onChildAdded

刪除不從列表中刪除我這樣做

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

這裏是我的數據庫結構 enter image description here

+0

我不確定'cardArrayAdapter'是什麼類型,但它似乎很可能不會處理'cardArrayAdapter.remove(new Card(id));'以您期望的方式處理。更可能的是你應該通過它的ID來查找現有的卡對象,然後'cardArrayAdapter.remove(existingCardObject)'。 –

回答

0

無法從適配器中取出存儲卡對象,當創建一個新的對象,並期望一個特定的卡被刪除。

使用cardArrayAdapter.remove(new Card(id));意味着您要從適配器中刪除剛剛創建的卡對象。你需要做的,就是找到根據id所期望的卡對象,然後將其刪除這樣的:

cardArrayAdapter.remove(foundedCardObject) 

希望它能幫助。