У меня есть действие, в котором мне нужно выбрать две даты, первую дату и дату окончания. У меня есть две кнопки TextView, при нажатии которых будут отображаться средства выбора даты. После ввода даты мне нужно рассчитать totalCalorie от firstDate до endDate.
Но то, что я получил, - это расчет общего количества калорий по всем датам.
Итак, как я могу это сделать?
Любая помощь будет здорово, спасибо.
Это мои коды:
//************************* FIRST DAY ***************************//
firstDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(
UserHighlights.this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth, mDateSetListener, year, month, day);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
});
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
month = month + 1;
Log.d(TAG, "onDateSet: dd/mm/yyy: " + day + "/" + month + "/" + year);
String date1= day + "/" + month + "/" + year;
fDate.setText(date1);
dateDisplay_first.setText(date1);
from_Date = year+""+month+""+day;
onStart(from_Date);
updateView();
}
};
//************************* END DATE ***************************//
endDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(
UserHighlights.this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth, mDateSetListener_1, year, month, day);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
});
mDateSetListener_1 = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
month = month + 1;
Log.d(TAG, "onDateSet: dd/mm/yyy: " + day + "/" + month + "/" + year);
String date2= day + "/" + month + "/" + year;
eDate.setText(date2);
dateDisplay_end.setText(date2);
end_Date = year+""+month+""+day;
onStart_1(end_Date);
updateView();
}
};
}
private void updateView() {
final String newFday = fDate.getText().toString().trim();
final String newEday = eDate.getText().toString().trim();
ref.orderByChild("dateRecord").startAt(newFday).endAt(newEday);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
int count = 0;
for (DataSnapshot foodTypeSnapshot: dataSnapshot.getChildren()) {
String user = String.valueOf((foodTypeSnapshot.child("totalCalorie").getValue()));
int totalCount = Integer.parseInt(user);
count = count + totalCount;
totalCalorie.setText((count +" kcal"));
}
Log.d("TAG", count + "");
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
}
Моя база: