2017-01-28 37 views
1

我有一個簡單的應用程序,它從多選列表視圖中獲取值。如果我把數據在數據庫中的輸出,它是這樣的:Android的Firebase應用程序發佈多個值

  • 等。 ..

這是重複的,我只想檢查項目,例如一月, 二月,三月,不再重複。

這裏是我的主activity.java

FirebaseDatabase.getInstance().setPersistenceEnabled(true); 
    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
     final DatabaseReference myRef = database.getReference(); 

     myList = (ListView) findViewById(R.id.ListView); 
     getChoice = (Button) findViewById(R.id.button2); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listContent); 
     myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     myList.setAdapter(adapter); 
     getChoice.setOnClickListener(new Button.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String selected = ""; 
       int cntChoice = myList.getCount(); 
       SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions(); 
       for (int i = 0; i <=cntChoice;i++) { 
        if (sparseBooleanArray.get(i)) { 
         selected = myList.getItemAtPosition(i).toString(); 
        } 
        myRef.push().setValue(selected); 
       } 
      } 
     }); 
    } 
} 

回答

5

您所呼叫的if外的setValue方法。你應該在裏面設置值,所以它只寫一次。將您的代碼更改爲:

  for (int i = 0; i <=cntChoice;i++) { 
       if (sparseBooleanArray.get(i)) { 
        selected = myList.getItemAtPosition(i).toString(); 
        myRef.push().setValue(selected); 
       } 
      } 
相關問題