Java Android onResume()一个动画饼图

Java Android onResume()一个动画饼图,java,android,sqlite,fragment,Java,Android,Sqlite,Fragment,我正在显示一个饼图,其中包含从数据库中获取的数据。数据库查询具有WHERE子句,其中包含微调器选择的年份。在Fragment的开头,一切正常,但如果不按微调器更改年份,则称为grafico(anno)。我尝试了onResume(),但它不起作用,你有什么建议吗?谢谢 private void grafico(String anno){ // Pie Chart Section Names String[] code = new String[] {"A", "B"

我正在显示一个饼图,其中包含从数据库中获取的数据。数据库查询具有
WHERE
子句,其中包含微调器选择的年份。在Fragment的开头,一切正常,但如果不按微调器更改年份,则称为
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();

 }
private void grafico(字符串anno){
//饼图分区名称
字符串[]代码=新字符串[]{“A”,“B”};
//每个饼图部分的颜色
int[]colors={Color.rgb(153204,0),Color.rgb(255,68,68)};
SQLiteDatabase db=new ResgistroSpeseHelper(getActivity()).getReadableDatabase();
String sql=“从表中选择SUM(a),SUM(b),其中包含数据,如“'+anno+“%””;
游标c=db.rawQuery(sql,null);
while(c.moveToNext()){
双a=c.getDouble(0);
双b_uuC=getDouble(1);
双somma=b_uu+a_u;
双perc_1=(a_/somma)*100;
双perc_2=(b_/somma)*100;
//饼图截面值
双[]分布={perc_2,perc_1};
//实例化类别以绘制饼图
CategorySeries distributionSeries=新的CategorySeries(“截至2012年10月1日的Android版本发行”);
为了(
int i=0;
i<分布长度;
(i++){
//将带有值和名称的切片添加到饼图中
add(代码[i],分布[i]);
//distributionSeries.add(perc_entrate);
}   
//为饼图实例化渲染器
DefaultRenderer DefaultRenderer=新的DefaultRenderer();
for(int i=0;i arg0){
回来
}
});
super.onResume();
}

Hi,我想确认一下,您是想在用户每次看到屏幕时调用方法grafico(anno)还是什么?我想在用户每次从喷丝头选择日期时调用该方法。请将您的代码放在onActivityCreated()[override method of Fagment]而不是onResume()中,并让我知道这是否有效。不是,即使在这种情况下,如果用户通过微调器更改日期,数据也会发生变化,但图表不会用新的数据更新好的,那么让我们按照我说的那样调试代码:请将日志放在方法private void grafico(String anno){}中,并说明在更改微调器时是否打印日志。
@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();
    }