Menu and a ContextMenu for a aChartengine chart

后端 未结 3 1037
甜味超标
甜味超标 2021-01-26 12:59

Is it possible? have anyone been doing this before? I don\'t know where to start.

I mostly need the menu, not the context menu.

My \"BudgetPieChart\" class

3条回答
  •  悲哀的现实
    2021-01-26 13:07

    To get a menu you need only 1 thing. You have to use GraphicalView on your own activity. In order to do that you'll need:

    Former BudgetPieChart class

    public class ExpByCatPieChartHelper extends AbstractChart{
    
        private DataToArray dta;
    
        @Override
        public String getName() {
            return MyApplication.getContext().getString(R.string.ExpensesByCategoriesPieChartName);
        }
    
        @Override
        public String getDesc() {
            return "The budget per project for this year (pie chart)";      
        }
    
    
        public GraphicalView createView(Context context) {
    
                dta = new DataToArray();
                String[] categories = dta.expenseByCategoriesToArray();
                double[] values = dta.expensesValuesByCategoriesToArray();      
                int[] colors = dta.getColorsArray(categories.length);           
    
                DefaultRenderer renderer = buildCategoryRenderer(colors);           
                renderer.setZoomButtonsVisible(true);
                renderer.setZoomEnabled(true);
                renderer.setChartTitleTextSize(20);
    
                return ChartFactory.getPieChartView(context, buildCategoryDataset("Wydatki kategoriami", categories, values), renderer);
            }
    
        @Override
        public Intent execute(Context context) {
            return null;
        }
    
    
    }
    

    Additional class with activity of your own:

    public class ExpByCatPieChart extends Activity{
    
        private IACharts pieChart = new ExpByCatPieChartHelper();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
    
            GraphicalView mGraphicalView = new ExpByCatPieChartHelper().createView(this);
            setContentView(mGraphicalView);
            super.onCreate(savedInstanceState);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.chart_settings_menu, menu);
            return true;
        }
    
        @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) {
            switch(item.getItemId()) {
            case R.id.chart_settings:
                Intent i = new Intent(this, PieChartSettings.class);
                startActivityForResult(i, 0); 
                return true;
            case R.id.home:
                finish();
                return true;
            }
            return super.onMenuItemSelected(featureId, item);
        }
    
    
    
    }
    

    And this is pretty much everything. You get a default achart view and seit it as a content of a new activity. Viola :)

提交回复
热议问题