I have an activity where I need to select two dates, a first date and an end date. I have two TextView Buttons, which when clicked would display the date pickers. After entering the date, I need to calculate totalCalorie from firstDate to endDate.
But what I got data is calculated totalCalorie from all Dates.
So How can I do this?
Any help would be great, thanks.
This is my codes:
//************************* 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();
}
});
}
My Firebase: