user1844638
user1844638

Reputation: 1073

How to refresh the activity in which the graph is plotted?

I am new to Android and I have developed the following code to display a bar chart for the top 10 travel destinations.
My question is that I need to refresh the activity so that i draws a new chart everytime I refresh. Please post any links where i may learn how to refresh it. I have searched all over the internet but could not find a suitable tutorial.

public class ChartActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
        setChartSettings(renderer);
        Intent intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
        startActivity(intent);
    }

    public void createIntent() 

     {



//    return ChartFactory.getBarChartIntent(this, buildBarDataset(titles, values), renderer,Type.DEFAULT);
    }



    public XYMultipleSeriesRenderer getBarDemoRenderer() {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(16);
        renderer.setChartTitleTextSize(20);
        renderer.setLabelsTextSize(15);
        renderer.setLegendTextSize(15);
        renderer.setMargins(new int[] {10, 20, 0, 0});
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
        r.setColor(Color.BLUE);
        renderer.addSeriesRenderer(r);
        r = new SimpleSeriesRenderer();
        r.setColor(Color.GREEN);
        renderer.addSeriesRenderer(r);
        return renderer;
      }

     private XYMultipleSeriesDataset getBarDemoDataset() {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        final int nr = 5;
        Random r = new Random();
        int SERIES_NR = 2;
        for (int i = 0; i < SERIES_NR; i++) {
          CategorySeries series = new CategorySeries("Top 10 Destinations " );
          for (int k = 0; k < nr; k++) {
            series.add(800 + r.nextInt() % 100);
          }
          dataset.addSeries(series.toXYSeries());
        }
        return dataset;
      }



    private void setChartSettings(XYMultipleSeriesRenderer renderer) {
        renderer.setChartTitle("Top 10 Destinations Chart");
        renderer.setXTitle("Travel Destinations Around the World");
        renderer.setYTitle("Number of Visitors");
        renderer.setXAxisMin(0);
        renderer.setXAxisMax(6);
        renderer.setYAxisMin(0);
        renderer.setYAxisMax(1000);
      }
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_chart, menu);
        return true;
    }
      }

Upvotes: 0

Views: 360

Answers (1)

Dheeraj Vepakomma
Dheeraj Vepakomma

Reputation: 28737

For more control over the chart view it's better to create a GraphicalView instead of creating an intent for a GraphicalActivity:

GraphicalView graphicalView = getBarChartView(this, getBarDemoDataset(), renderer, Type.DEFAULT);

Add this view to the view heirarchy of your activity. Then to show new data, first modify the dataset and then schedule a repaint using:

graphicalView.repaint()

Upvotes: 1

Related Questions