Gráfico de línea de Achartengine

Estoy usando Achartengine para crear un gráfico de líneas. Mi mes actual se muestra sin embargo la segunda línea, el mes pasado, no lo está mostrando. Aquí está la muchacha y el logcat: Así como usted puede ver del logcat mis fechas son correctas y así que es la cuenta del mes anterior. Así que por qué no mostrarme está más allá de mí.

Log Cat:

08-07 16:13:43.969: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-07-01 enddate: 2013-07-31 08-07 16:13:43.969: I/PROJECTCARUSO(11734): count: 9 08-07 16:13:43.979: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-08-01 enddate: 2013-08-31 

Clase:

 public class TempHistoryFragment extends Fragment{ private GraphicalView mChartView; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } Calendar cal = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd",Locale.US); String month_name = month_date.format(cal.getTime()); ArrayList<Integer> xArray = new ArrayList<Integer>(); ArrayList<Integer> yArray = new ArrayList<Integer>(); ArrayList<Integer> xArray2 = new ArrayList<Integer>(); ArrayList<Integer> yArray2 = new ArrayList<Integer>(); cal.add(Calendar.MONTH ,-1); String prev_month_name = month_date.format(cal.getTime()); int daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //***********************************************// // Our first data Last MONTH //***********************************************// //start date for cursor //cal.add(Calendar.MONTH, -1); cal.set(Calendar.DATE, 1); String startdate = df.format(cal.getTime()); //end date cal.set(Calendar.DATE, daysInMonth); String enddate = df.format(cal.getTime()); Log.i("PROJECTCARUSO","DEBUG startdate: " + startdate + " enddate: " + enddate); Cursor c = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_CHARTING, null, "? < " + StatusData.KEY_CHARTING_DATE + " AND ? > " + StatusData.KEY_CHARTING_DATE , new String[] {startdate, enddate}, null); // c.moveToFirst(); Log.i("PROJECTCARUSO","count: " + c.getCount()); if (c.getCount()>0 && c!=null) { while (c.isAfterLast() == false) { if ((isNumeric(c.getString(c.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))))) { java.util.Date date = null; int day = 0; //get date from database String datetest = c.getString(c.getColumnIndex(StatusData.KEY_CHARTING_DATE)); //try to reformat to date. try { date = format.parse(datetest); day = date.getDate(); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } xArray.add(day); } c.moveToNext(); } } int[] x = new int[xArray.size()]; for (int i = 0; i < xArray.size(); i++) { x[i] = xArray.get(i); } int[] y = new int[yArray.size()]; for (int i = 0; i < yArray.size(); i++) { y[i] = yArray.get(i); } TimeSeries series = new TimeSeries(prev_month_name); for( int i = 0; i < y.length; i++) { series.add(x[i], y[i]); } //***********************************************// // Our second data THIS MONTH //***********************************************// //start date for cursor cal2.set(Calendar.DATE, 1); String startdate2 = df.format(cal2.getTime()); //end date cal2.set(Calendar.DATE, daysInMonth); String enddate2 = df.format(cal2.getTime()); Log.i("PROJECTCARUSO","DEBUG startdate: " + startdate2 + " enddate: " + enddate2); Cursor c2 = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_CHARTING, null, "? < " + StatusData.KEY_CHARTING_DATE + " AND ? > " + StatusData.KEY_CHARTING_DATE , new String[] {startdate2, enddate2}, null); // c2.moveToFirst(); if (c2.getCount()>0 && c2!=null) { while (c2.isAfterLast() == false) { if (isNumeric(c2.getString(c2.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE)))){ yArray2.add(c2.getInt(c2.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))); java.util.Date date = null; int day = 0; //get date from database String datetest = c2.getString(c2.getColumnIndex(StatusData.KEY_CHARTING_DATE)); //try to reformat to date. try { date = format.parse(datetest); day = date.getDate(); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } xArray2.add(day); } c2.moveToNext(); } } int[] x2 = new int[xArray2.size()]; for (int i = 0; i < xArray2.size(); i++) { x2[i] = xArray2.get(i); } int[] y2 = new int[yArray2.size()]; for (int i = 0; i < yArray2.size(); i++) { y2[i] = yArray2.get(i); } TimeSeries series2 = new TimeSeries(month_name); for( int i = 0; i < x2.length; i++) { series2.add(x2[i], y2[i]); } XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); dataset.addSeries(series); dataset.addSeries(series2); XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); // Holds a collection of XYSeriesRenderer and customizes the graph XYSeriesRenderer renderer = new XYSeriesRenderer(); // This will be used to customize line 1 XYSeriesRenderer renderer2 = new XYSeriesRenderer(); // This will be used to customize line 2 mRenderer.addSeriesRenderer(renderer); mRenderer.addSeriesRenderer(renderer2); // Customization time for line 1! renderer.setColor(getResources().getColor(R.color.complementary)); renderer.setPointStyle(PointStyle.SQUARE); renderer.setFillPoints(true); // Customization time for line 2! renderer2.setColor(getResources().getColor(R.color.base)); renderer2.setPointStyle(PointStyle.DIAMOND); renderer2.setFillPoints(true); mChartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer); //Set Chart Title and labels mRenderer.setChartTitle("Temperature Tracking"); mRenderer.setChartTitleTextSize(getResources().getDimension(R.dimen.largeText)); mRenderer.setLabelsColor(getResources().getColor(R.color.primaryTextDark)); //YAxis of Temp mRenderer.setYTitle("Temperature", 0); mRenderer.setYAxisMin(80, 0); mRenderer.setYAxisMax(110, 0); mRenderer.setYLabelsAlign(Align.CENTER); mRenderer.setYLabelsColor(0, getResources().getColor(R.color.primaryTextDark)); //XAxis of month mRenderer.setXLabels(20); mRenderer.setXTitle(month_name); mRenderer.setXAxisMin(1); mRenderer.setXAxisMax(daysInMonth); mRenderer.setXLabelsColor(getResources().getColor(R.color.primaryTextDark)); //Set the display mRenderer.setMarginsColor(getResources().getColor(R.color.transparent)); mRenderer.setShowCustomTextGrid(true); mRenderer.setAxisTitleTextSize(getResources().getDimension(R.dimen.mediumText)); mRenderer.setLabelsTextSize(getResources().getDimension(R.dimen.smallMediumText)); mRenderer.setPanEnabled(false, false); mRenderer.setClickEnabled(false); mRenderer.setZoomEnabled(false, false); return mChartView; } @SuppressWarnings("unused") public static boolean isNumeric(String str) { try { double d = Double.parseDouble(str); } catch(NumberFormatException nfe) { return false; } return true; } } 

Ah, y aquí están esos colores:

  <color name ="base">#51bbc2</color> <color name ="complementary">#C25951</color> 

El resultado

Gracias @Dan me llevas a la solución. Fui y registraron todos los puntos para asegurarse de que todos los valores correctos se estaban colocando en la matriz derecha y vienen a averiguar yArray.add(c.getInt(c.getColumnIndex(StatusData.KEY_CHARTING_TEMPERATURE))); De alguna manera se eliminó. Así que ahora funciona! ¡Hurra!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.