[英]Inflate a child view in a recyclerview when getting data from Firebase with Android
[英]Unable to remove exact name from the recyclerview when child is removed in Firebase
我在一个活动中有一个RecyclerView
,当用户从他们的设备中打开该活动时,那里的名称会添加到recyclerview中。
这是我的代码:
mDatabase.child(rID).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Map<String, String> map = (Map<String, String>) dataSnapshot.getValue();
pA = map.get("pName");
uA = map.get("pUrl");
String cLatS = map.get("cLat").trim();
currentLtAU = Double.parseDouble(cLatS);
String cLngS = map.get("cLng").trim();
currentLnAU = Double.parseDouble(cLngS);
layout.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.INVISIBLE);
prepareData();
} else {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "Some error occurred. Please retry!", Snackbar.LENGTH_SHORT);
snackbar.show();
onBackPressed();
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
Log.d("childRemoved", dataSnapshot.getKey());
aModelClass = new AModelClass(pA, uA, String.valueOf(currentLtAU), String.valueOf(currentLnAU), null, s, v, availableFrom, rID, userID2, noa);
aFastItemAdapter.remove(aFastItemAdapter.getAdapterItemCount() - 1);
aList.setAdapter(aFastItemAdapter);
aList.smoothScrollToPosition(0);
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这是prepareData();
方法 :-
public void prepareData() {
aModelClass = new AModelClass(pA, uA, String.valueOf(currentLtAU), String.valueOf(currentLnAU), null, s, v, availableFrom, rID, userID2, noa);
aFastItemAdapter.add(aModelClass);
aList.setAdapter(aFastItemAdapter);
aList.smoothScrollToPosition(0);
}
名称被添加,但是问题在于它们没有被完全删除到数据库中。 像在数据库中一样, "John"
被删除,但在列表的此处,最后一个项目(无论它是什么)都被删除。
如何从列表中删除从数据库中删除的完全相同的名称?
从适配器中删除数据后,必须刷新适配器。
aFastItemAdapter.remove(aFastItemAdapter.getAdapterItemCount() - 1);
notifyDataSetChanged();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.