Am using AChartEngine library to show my reports in BarChart. I need to reset the values that comes from database in Button click. So I cleared values, Dataset, Renderer. Now if I run my app on device and barchart is displayed successfully and when click button barchart is disabled !! whats wrong with my code ?
qry1="SELECT * FROM TableName where Filter='Yes'";
qry2="SELECT * FROM TableName where Filter='No'";
try {
Cursor c = database.rawQuery(qry1, null);
if (c.moveToFirst()) {
do {
String count = c.getString(c.getColumnIndex("Id"));
System.err.println(count);
yescount = yescount + 1;
} while (c.moveToNext());
}
System.err.println("BarChart YesCount" + yescount);
} catch (Exception e) {
Log.d("BarChart-Yes", "Unable to get Record Count "+ e.getMessage().toString());
}
try {
Cursor c = database.rawQuery(qry2, null);
if (c.moveToFirst()) {
do {
String count = c.getString(c.getColumnIndex("Id"));
System.err.println(count);
nocount = nocount + 1;
} while (c.moveToNext());
}
System.err.println("BarChart Nocount" + nocount);
} catch (Exception e) {
Log.d("BarChart-No", "Unable to get Record Count "+ e.getMessage().toString());
}
yesc = new int[] { yescount };
noc = new int[] { nocount };
seriesy = new CategorySeries("Yes");
for(int i=0; i < yesc.length; i++){
seriesy.add("Bar"+(i+1),yesc[i]);
}
seriesn = new CategorySeries("No");
for(int i=0; i < noc.length; i++){
seriesn.add("Bar"+(i+1),noc[i]);
}
dataSet = new XYMultipleSeriesDataset();
dataSet.addSeries(seriesy.toXYSeries());
dataSet.addSeries(seriesn.toXYSeries());
renderery = new XYSeriesRenderer();
renderery.setColor(Color.BLUE);
renderery.setDisplayChartValues(true);
renderery.setLineWidth(20);
renderern = new XYSeriesRenderer();
renderern.setColor(Color.GREEN);
renderern.setDisplayChartValues(true);
renderern.setLineWidth(30);
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderery);
mRenderer.addSeriesRenderer(renderern);
mRenderer.setChartTitle("Active Warming");
mRenderer.setYTitle("No of Reports");
mRenderer.setZoomButtonsVisible(true);
mRenderer.setShowLegend(true);
mRenderer.setShowGridX(true);
mRenderer.setBarSpacing(.5);
mRenderer.setApplyBackgroundColor(false);
mRenderer.setMarginsColor(Color.rgb(229,250,251));
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setAxesColor(Color.BLACK);
mRenderer.setXAxisMin(0);
mRenderer.setYAxisMin(0);
mRenderer.setXAxisMax(2);
mRenderer.setXLabels(0);
mRenderer.setBarWidth(18);
mRenderer.setPanEnabled(true, true);
layout=(LinearLayout)findViewById(R.id.barchartaw);
mChartView=ChartFactory.getBarChartView(getApplicationContext(), dataSet, mRenderer, org.achartengine.chart.BarChart.Type.DEFAULT);
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
This above code is working fine. now in side button click i cleared integer values, cleared dataset and then cleared Renderer. Then again I set another query to get data from database and call this same code again but this time the BarChart get disappears.
yesc=null; noc=null; Integer Array
yescount = 0; nocount = 0;
dataSet.clear();
mRenderer.removeAllRenderers();
Can any one able to help me ? Thanks in advance.