Java - 如何同时按住两个键?

时间:2017-02-14 20:12:55

标签: android firebase android-recyclerview key removechild

我使用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();

    }
}

1 个答案:

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