我想在我的应用程序中创建一种过滤方法。因此,我想显示微调器内部Firebase数据库中的所有城市,而不显示同一城市。供您参考,该城市位于EditText字段中。
我的编码:-
private void loadFireBaseDataList(final String referenceKey)
{
databaseReference = FirebaseDatabase.getInstance().getReference(referenceKey);
databaseReference.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
final List<String> identity2 = new ArrayList<String>();
identity2.add(0, "Location");
for (DataSnapshot snapshot : dataSnapshot.getChildren())
{
for (DataSnapshot dataSnapshot2 : snapshot.getChildren())
{
identity2.add(dataSnapshot2.child("adstuitioncity").getValue(String.class));
}
}
ArrayAdapter<String> nameAdapter2 = new ArrayAdapter<String>(FilterTuitionCentre.this, android.R.layout.simple_spinner_item, identity2);
nameAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spLocation.setAdapter(nameAdapter2);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
我的数据库:-
答案 0 :(得分:1)
您可以使用Set<String>
,其中不包含重复项:
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Set<String> cities = new HashSet<String>();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
// ...
cities.add(value)
}
List<String> identity2 = new ArrayList<String>(cities);
identity2.add(0, "Location")
ArrayAdapter<String> adapter = new ArrayAdapter<String>(FilterTuitionCentre.this, android.R.layout.simple_spinner_item, identity2);
// ...
}