2017-02-14 2 views
0

나는 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

이 정말 중포 기지 문제, 또는 :

keysMap.put(key1, key2); keysMap.put(key2, key1); 

는 그런 다음 populateViewHolder(...) 방법이에 온 클릭 리스너 코드를 변경? – ControlAltDel

답변

0

키를 매핑 할 수 있습니다. 당신은 당신의 활동에 두 가지 키가 있다고 말했습니까?

그래서 당신은지도에 넣어 (이 경우 키 1, 키 2) 각 키의 몇 그런 다음이

Map<String, String> keysMap = new HashMap<String, String>(); 

같은지도를 만들 수 있습니다.

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(); 
} 
+0

두 개의 키가 있지만 같은 문자열에 있습니다. 토스트 명령을 사용하면 하나의 이미지 키와 다른 이미지 키가 표시됩니다. 나는 다른 문자열로 분리하려고 시도했지만 나는 할 수 없었다. 그래서 나는 이것을 위해지도를 사용할 수 없다고 생각합니다. 내가 맞습니까? –

+0

예를 들어 "key1 : key2"와 같은 문자열이 있습니까? 이 경우 split 메서드를 사용하여 두 키를 구분할 수 있습니다. String [] keys = new String ("key1 : key2"). split (":"); 열쇠가 들어있는 문자열을 게시 할 수 있습니까? 그래서 우리는 할 수있는 것을 볼 수 있습니다. – Flood2d

+0

"String image_key = getRef (position) .getKey();"를 사용할 때 생성되는 문자열 유형을 인식 할 수 없습니다. 나는 쪼개는 것을 시도했다 그러나 작동하지 않았다. "문자열 [] parts = image_key.split (": "); 문자열 part1 = 부분 [0]; 문자열 part2 = 부분 [1];" 인덱스 1은 존재하지 않으며 인덱스 0을 토스트 할 때 두 키가 모두 나타납니다. –