我有一个简单的应用程序,它从多选列表视图中获取值。如果我将数据推送到数据库中的输出,就像:
重复,我只想要检查项目,例如一月, 二月,三月,没有重演。
这是我的主要活动.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);
}
}
});
}
}
答案 0 :(得分:5)
您正在if
之外调用您的setValue方法。您应该在if中设置值,因此它只写一次。将您的代码更改为:
for (int i = 0; i <=cntChoice;i++) {
if (sparseBooleanArray.get(i)) {
selected = myList.getItemAtPosition(i).toString();
myRef.push().setValue(selected);
}
}