Пожалуйста, помогите мне здесь, я застрял. У меня есть отлично работающее представление переработчика пользовательского интерфейса Firebase. Поэтому я перебираю базу данных перед загрузкой элементов.Я хочу перебрать все элементы (затем получить значения суммы mon + tuesday = start, затем wed + thur = end для каждого отдельного элемента, а затем заполнить представление только значениями, где start <= 90 && end <= 90). </p>
Это пример структуры моей базы данных
Структура базы данных.
Это то, что я пробовал, но оно не работает.Обратите внимание, что кнопка onclick и recyclerview работает. Единственная проблема заключается в добавлении этого условия.
Кажется, что всегда вызывается внутреннее условие else, если я его удаляю, выражение if всегда истинно независимо от логики.(если - еще) не работает.
saturday.setOnClickListener(new View.OnClickListener() {
final DatabaseReference Distance = FirebaseDatabase.getInstance().getReference().child("Days");
@Override
public void onClick(View v) {
//Loop through the database to get all results
Distance.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterator<DataSnapshot> items = dataSnapshot.getChildren().iterator();
while (items.hasNext()) {
DataSnapshot item = items.next();
if (item.child("mon").exists() && item.child("tue").exists() && item.child("wed").exists() && item.child("thur").exists()) {
//Start
Double mon = Double.valueOf(item.child("mon").getValue().toString());
Double tue = Double.valueOf(item.child("tue").getValue().toString());
Double start = (mon + tue);
//End
Double wed = Double.valueOf(item.child("wed").getValue().toString());
Double thur = Double.valueOf(item.child("thur").getValue().toString());
Double end = (wed + thur);
//Check for the values that are less than 90 for both start and end.
if (start <= 90 && end <= 90) {
//Load them into the recyclerview
Query query = Distance;
FirebaseRecyclerAdapter<recyclerDriver, Users_ViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<recyclerDriver, Users_ViewHolder>(
recyclerDriver.class,
R.layout.recyclerdriverlayout,
Users_ViewHolder.class,
query
) {
@Override
protected void populateViewHolder(Users_ViewHolder viewHolder, recyclerDriver model, final int position) {
viewHolder.setName(model.getName());
viewHolder.setName(model.getName());
viewHolder.setFrom(model.getDepartureLocation());
}
};
mRecyclerview.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.notifyDataSetChanged();
} else {
message = "Sorry! No matches for you.";
snackbarShow(message);
mRecyclerview.setVisibility(View.GONE);
}
} else {
message = "Sorry! Some records are missing";
snackbarShow(message);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
snackbarShow(databaseError.getMessage().toString());
}
});
}
});