【发布时间】:2021-01-31 12:48:49
【问题描述】:
我想在我的 RecyclerView 中删除一个项目,当我单击删除按钮时,它也会删除其他项目。
这是我的火力基地结构
我想删除我的 firebase 中的每个项目或按下的键,但是如果我单击 1 个项目,我的代码中会发生什么,它也会删除其他项目。
这是我的代码
List<FetchRheinSubject> fetchDataList = new ArrayList<>();
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ViewHolderClass viewHolderClass=(ViewHolderClass)holder;
FetchRheinSubject fetchData = fetchDataList.get(position);
viewHolderClass.subjectName.setText(fetchData.getSubjectName());
viewHolderClass.day.setText(fetchData.getDay());
viewHolderClass.time.setText(fetchData.getTime());
}
@Override
public int getItemCount() {
return fetchDataList.size();
}
public class ViewHolderClass extends RecyclerView.ViewHolder {
TextView subjectName, day, time , subCounter;
ImageView delete;
public ViewHolderClass(@NonNull final View itemView) {
super(itemView);
subjectName=itemView.findViewById(R.id.subjectName);
day=itemView.findViewById(R.id.day);
time=itemView.findViewById(R.id.time);
delete = itemView.findViewById(R.id.deleteIcon);
subCounter = itemView.findViewById(R.id.subCounter);
final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().getRoot().child("rhein_subject");
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChildren()) {
DataSnapshot firstChild = dataSnapshot.getChildren().iterator().next();
firstChild.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
【问题讨论】:
标签: java android firebase firebase-realtime-database