我使用recyclerView一次显示两张图片。一旦用户点击其中一个,就应该从Firebase数据库中删除它们。事实是......当活动开始时,我可以获得两个图像密钥。
但是一旦用户点击,我只能按预期删除被点击的图像。如何在点击后按住两个图像键进行删除?
protected void populateViewHolder(final ImagesHolder viewHolder, final Images model, int position) {
final String image_key = getRef(position).getKey();
Toast.makeText(TesteActivity.this, foto_key, Toast.LENGTH_SHORT).show(); // Here I can get both keys!
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDatabaseTeste = FirebaseDatabase.getInstance().getReference().child("imagesForUsers").child(mAuth.getCurrentUser().getUid()).child(image_key);//
mDatabaseTeste.removeValue();
}
}
答案 0 :(得分:0)
您可以映射键。 你说在你的活动中你有两把钥匙。
所以创建一个像这样的地图
Map<String, String> keysMap = new HashMap<String, String>();
然后,对于每一对键(在这种情况下为key1,key2),您将它们放入地图中。
keysMap.put(key1, key2);
keysMap.put(key2, key1);
然后在您的populateViewHolder(...)
方法中,将onClick侦听器代码更改为:
mDatabaseTeste = FirebaseDatabase.getInstance().getReference().child("imagesForUsers").child(mAuth.getCurrentUser().getUid()).child(image_key);//
mDatabaseTeste.removeValue();
if(keysMap.containsKey(image_key)) {
//Gets the key associated to the image_key
String relatedKey = keysMap.get(image_key);
mDatabaseTeste = FirebaseDatabase.getInstance().getReference().child("imagesForUsers").child(mAuth.getCurrentUser().getUid()).child(relatedKey);//
mDatabaseTeste.removeValue();
}