@Override public void onDataReceived(DataReadResult dataReadResult) { Log.d(TAG, "Received activity result"); final String DATE_FORMAT = "dd/MM"; SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); List<Line> lines = new ArrayList<>(); // all lines List<PointValue> calories; // a single line calories = new ArrayList<>(); int x_val = 0; List<AxisValue> xAxisValues = new ArrayList<>(); if (dataReadResult.getBuckets().size() > 0) { for (Bucket bucket : dataReadResult.getBuckets()) { String date = dateFormat.format(bucket.getStartTime(TimeUnit.MILLISECONDS)); DataSet dataSet = bucket.getDataSet(DataType.AGGREGATE_CALORIES_EXPENDED); Log.d(TAG, "New databucket with date: " + date); // Increase counter x_val = x_val + 1; // Set axis labels xAxisValues.add(new AxisValue(x_val).setLabel(date)); // Add a zero measurement point calories.add(new PointValue(x_val, 0)); List<DataPoint> dataPointList = dataSet.getDataPoints(); for (DataPoint dp : dataPointList) { String timestamp = dateFormat.format(dp.getTimestamp(TimeUnit.MILLISECONDS)); float calorie = dp.getValue(Field.FIELD_CALORIES).asFloat(); // Set graph values calories.set(x_val - 1, new PointValue(x_val, calorie)); Log.d(TAG, "timestamp: " + timestamp + ", calories: " + calorie); } } Line line = new Line(calories); line.setColor(ChartUtils.COLOR_BLUE); line.setHasLines(true); line.setHasPoints(false); line.setCubic(false); line.setHasLabels(false); line.setHasLabelsOnlyForSelected(true); lines.add(line); fitnessFragment.setCalorieData(xAxisValues, lines); } }