我正在使用Achartengine来创建折线图.我现在的月份显示,但上个月的第二行没有显示出来.这是lass和logcat:所以从logcat可以看出我的日期是正确的,上个月的计数也是正确的.那么为什么它没有显示超出我.
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
类:
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,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; } }
哦,这是那些颜色:
<color name ="base">#51bbc2</color> <color name ="complementary">#C25951</color>