Значения Datasnapshot не сохраняются в списке.
public class TestActivity extends AppCompatActivity {
private DatabaseReference InchargeRef;
private String userID;
private TextView txt,txt1,txt2,txt3;
private String Male;
String[] abi = {};
private ArrayList<String> list = new ArrayList<String>(Arrays.asList(abi));
Integer[] abi1 = {10, 30, 20, 50, 0, 0};
private ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(abi1));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
txt = findViewById(R.id.txt);
userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
InchargeRef = FirebaseDatabase.getInstance().getReference().child("Incharge New Events Preview")
.child(userID).child("Services");
list1.removeAll(Arrays.asList(Integer.valueOf(0)));
Collections.sort(list1);
int k = 0;
int i = 0;
int n = list1.size();
while(k < list1.size())
{
if (i < n && list1.get(i) > 0)
{
Male = String.valueOf(list1.get(i));
InchargeRef.orderByChild("Male").equalTo(Male).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String date = ds.child("Date").getValue(String.class);
String session = ds.child("Session").getValue(String.class);
storingvalues(date, session);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
i++;
}
}
txt.setText(String.valueOf(list1.size()));
}
public void storingvalues(String Date, String Session)
{
String a = Date + "," + Session;
list.add(a);
}
}
В приведенном выше коде я получаю некоторые данные из базы данных Firebase. Все работает отлично. Но я хочу сохранить все значения в списке и показать размер списка в TextView
. Основной мотив - изначально мужчина = 10, поэтому он получит некоторые данные (пример значений 2). Сохраните его в списке, и после завершения Male заменит его на 20, поэтому он получит некоторые данные (набор значений Ex.1). Аналогично потребуется 4 входа 10,20,30,50. И теперь список будет иметь некоторое количество значений. Ex.it будет иметь значения до индекса от 6 до 7, что бы это ни было. И тогда Atlast я хочу отобразить размер текста.