android - android firebase realtimedatabase Questions(recycler view, onclick button, remove)
问题描述
我希望在单击 item1 上的按钮时删除 item1 的数据。但mDatabase.getReference("Choicestore").child(String.valueOf(arrayList.get(position)));
我不知道如何处理这部分。
我希望在单击 item1 上的按钮时删除 item1 的数据。我希望在单击 item2 上的按钮时删除 item2 的数据。
@Override
public void onBindViewHolder(@NonNull final ChoicestoreViewHolder holder, final int position) {
Glide.with(holder.itemView)
.load(arrayList.get(position).getChoicestore_img())
.into(holder.choicestore_img);
holder.choicestore_name.setText("storename : " + arrayList.get(position).getChoicestore_name());
holder.choicestore_time.setText("opentime : " + arrayList.get(position).getChoicestore_time());
holder.choicestore_breaktime.setText("breaktime : " +arrayList.get(position).getChoicestore_breaktime());
holder.choicestore_number.setText("storenumber : " + arrayList.get(position).getChoicestore_number());
holder.choicestore_delete.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mDatabase = FirebaseDatabase.getInstance();
dataRef = mDatabase.getReference("Choicestore").child(String.valueOf(arrayList.get(position)));
dataRef.removeValue();
}
});
}
我使用下面的答案进行编码,但出现此错误。
@Override
public void onBindViewHolder(@NonNull final ChoicestoreViewHolder holder, final int position) {
Glide.with(holder.itemView)
.load(arrayList.get(position).getChoicestore_img())
.into(holder.choicestore_img);
holder.choicestore_name.setText("매장명 : " + arrayList.get(position).getChoicestore_name());
holder.choicestore_time.setText("운영시간 : " + arrayList.get(position).getChoicestore_time());
holder.choicestore_breaktime.setText("브레이크타임 : " +arrayList.get(position).getChoicestore_breaktime());
holder.choicestore_number.setText("매장번호 : " + arrayList.get(position).getChoicestore_number());
holder.choicestore_delete.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
final String NAme= arrayList.get(position).getChoicestore_name();
dataRef.orderByChild("choicestore_name")
.equalTo( NAme )
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
String clubkey = childSnapshot.getKey();
Log.d(TAG, "KEY = " + clubkey );
childSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
这是发生错误的代码。
解决方案
里面holder.choicestore_delete.setOnClickListener
final String NAme= arrayList.get(position).getChoicestore_name();
mDatabasesliderRef.orderByChild("choicestore_name")
.equalTo( NAme )
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
String clubkey = childSnapshot.getKey();
Log.d( TAG, "KEY = " + clubkey );
childSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
推荐阅读
- ruby-on-rails - The application.js file is being ignored by webpacker compilation in rails 6
- excel - Windows.Activate - Run-time error '9': Subscript out of range - When using wildcard "*"
- opentracing - opentracing/jaeger 相对于 APM 跟踪功能的优势
- ios - 如何检查 iPhone X 浏览器中的元素?
- xcode - Searching for a menu item shortcut
- android - Android Camerax 在真实设备上崩溃
- java - 使用 Java 正则表达式,如何检查字符串是否包含任何“|” 但不是“||”
- ios - Could I mix Unity with iOS?
- sql - How to write a SQL query to find the first time when sum greater than a number?
- angular - 当我在 nginx 中对 Angular 应用程序进行负载平衡时,找不到 Js 文件