Android onResume()aChartengine饼图

时间:2014-02-02 16:49:25

标签: java android sqlite fragment

我正在显示一个饼图,其中包含从数据库中获取的数据。数据库查询具有Spinner选择的年份的WHERE子句。在Fragment的开头一切正常,但是如果你不用Spinner方法改变年份就称为grafico(anno)。我尝试使用onResume (),但它不起作用,你有一些建议吗?感谢

private void grafico(String anno){
        // Pie Chart Section Names
        String[] code = new String[] {"A", "B"};        

        // Color of each Pie Chart Sections
        int[] colors = { Color.rgb(153,204,0), Color.rgb(255,68,68)};

        SQLiteDatabase db = new ResgistroSpeseHelper(getActivity()).getReadableDatabase();

        String sql = "SELECT SUM(a), SUM(b) FROM table WHERE data LIKE '"+anno+"%'";
    Cursor c = db.rawQuery(sql, null);

            while (c.moveToNext()){

                double a_ = c.getDouble(0);
                double b_ = c.getDouble(1);

                double somma = b_ + a_;

                double perc_1 = (a_ / somma) * 100;
                double perc_2 = (b_ / somma) * 100;

                // Pie Chart Section Value
                double[] distribution = { perc_2, perc_1 } ;

            // Instantiating CategorySeries to plot Pie Chart       
            CategorySeries distributionSeries = new CategorySeries(" Android version distribution as on October 1, 2012");
            for(
                int i=0 ; 
                    i < distribution.length;
                    i++){
                // Adding a slice with its values and name to the Pie Chart
                distributionSeries.add(code[i], distribution[i]);
                //distributionSeries.add(perc_entrate);
            }   

            // Instantiating a renderer for the Pie Chart
            DefaultRenderer defaultRenderer  = new DefaultRenderer();       
            for(int i = 0 ;i<distribution.length;i++){          
                SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();       
                seriesRenderer.setColor(colors[i]);
                seriesRenderer.setDisplayChartValues(true);
                // Adding a renderer for a slice
                defaultRenderer.addSeriesRenderer(seriesRenderer);
            }

            defaultRenderer.setLabelsTextSize (12);
            defaultRenderer.setLegendTextSize(22);

            defaultRenderer.setZoomButtonsVisible(true);                    

            // Getting PieChartView to add to the custom layout
            mChartView = ChartFactory.getPieChartView(getActivity(),distributionSeries, defaultRenderer);
            // Getting a reference to view group linear layout chart_container

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

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

 }

//

@Override
    public void onResume(){
        years = ottieniAnni();
SpinnerAdapter adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, years);

        yearSelector.setAdapter(adapter);
        yearSelector.setSelection(0);
        yearSelector.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view,
                    int position, long id) {

                String anno = years.get(position);
                grafico(anno);

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                return;
            }

        });
         super.onResume();
    }

0 个答案:

没有答案