Autore Topic: Libreria aChartEngine  (Letto 321 volte)

Offline C_G

  • Utente junior
  • **
  • Post: 69
  • Respect: 0
    • Mostra profilo
Libreria aChartEngine
« il: 10 Marzo 2014, 21:55:36 CET »
0
questa è la prima volta che lavoro con la libreria aChartEngine . Sto cercando di adattare il codice da un tutorial trovato in rete. Voglio visualizzare un grafico a barre con i dati dal database, ma posso vedere solo un risultato, e non tutti i dati ottenuti dalla clausola GROUP BY. Dove sbaglio?
Codice (Java): [Seleziona]
private void grafico(String anno){
SQLiteDatabase db = new MyHelper(getActivity()).getReadableDatabase();
String sql ="SELECT field1, field2, SUM(field3) FROM Table WHERE field3>0 AND data LIKE '"+anno+"-%' GROUP BY field1 ORDER BY SUM(field3) DESC";
Cursor c = db.rawQuery(sql, null);

    while (c.moveToNext()){

        field1 = c.getString(0);
        field2 = c.getInt(1);
        field3 = c.getDouble(2);
XYSeries secondSeries = new XYSeries("xse");

        String[] mCat = { field1 } ;
        double[] distribution = { field3 } ;
        for(int i=0;i<distribution.length;i++){        

            secondSeries.add(i,distribution[i]);
        }
// Creating a dataset to hold each series
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

        dataset.addSeries(secondSeries);    


        XYSeriesRenderer firstRenderer = new XYSeriesRenderer();
        firstRenderer.setColor(Color.rgb(130, 130, 230));
        firstRenderer.setFillPoints(true);
        firstRenderer.setLineWidth(10);
        firstRenderer.setDisplayChartValues(true);
// Creating XYSeriesRenderer to customize expenseSeries
        XYSeriesRenderer secondRenderer = new XYSeriesRenderer();
        secondRenderer.setColor(Color.rgb(220, 80, 80));
        secondRenderer.setFillPoints(true);
        secondRenderer.setLineWidth(2);
        secondRenderer.setDisplayChartValues(true);    

        // Creating a XYMultipleSeriesRenderer to customize the whole chart
        XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
        multiRenderer.setXLabels(0);
        multiRenderer.setChartTitle("Chart");
multiRenderer.setZoomButtonsVisible(true);              
        for(int i=0; i< distribution.length;i++){
            multiRenderer.addXTextLabel(i, mCat[i]);            
        }      


        multiRenderer.addSeriesRenderer(firstRenderer);
        multiRenderer.addSeriesRenderer(secondRenderer);

        // Creating an intent to plot bar chart using dataset and multipleRenderer      
        mChartView = ChartFactory.getBarChartView(getActivity(), dataset, multiRenderer, Type.DEFAULT);


            // Adding the pie chart to the custom layout
           chartContainer.addView(mChartView);

            }

            c.close();
            db.close();

 }