package com.example.asamles.app.charts; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.example.asamles.app.R; import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.data.LineDataSet; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class ChartMain extends Fragment implements GetForecastTask.GetForecastTaskListener { private LineChart chart; public static ChartMain newInstance() { return new ChartMain(); } public ChartMain() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_chart, container, false); chart = (LineChart) rootView.findViewById(R.id.chart); chart.setDrawLegend(false); chart.animateX(3000); chart.setDescription(""); chart.setDrawVerticalGrid(false); chart.setDrawHorizontalGrid(false); chart.setDrawYLabels(false); chart.setNoDataTextDescription("Loading..."); chart.setDrawBorder(false); GetForecastTask mt = new GetForecastTask(0, 0, this); mt.execute(); return rootView; } @Override public void onGetForecastTaskComplete(OpenWeatherMapForecastResponse response) { ArrayList<Entry> valsDayTemp = new ArrayList<Entry>(); ArrayList<String> xValsDay = new ArrayList<String>(); Entry day = null; long time = 0; Calendar calendar = Calendar.getInstance(TimeZone.getDefault()); for(int i = 0; i<response.forecast.length; i++) { day = new Entry(response.forecast[i].temp.day, i); valsDayTemp.add(day); time = response.forecast[i].dt; calendar.setTimeInMillis(time*1000); // Date df = new java.util.Date(time); String vv = new SimpleDateFormat("dd.MM").format(calendar.getTime()); xValsDay.add(vv); } LineDataSet dayTemp = new LineDataSet(valsDayTemp, "Akademgorodok"); LineData dayWeatherData = new LineData(xValsDay, dayTemp); dayTemp.setLineWidth(4f); dayTemp.setCircleSize(8f); chart.setData(dayWeatherData); } @Override public void onGetForecastTaskError(String response) { Toast.makeText(getActivity(), response, Toast.LENGTH_LONG).show(); } }