You can do it by using something like below. But make sure "arrProducts" which is array of Custom objects is filled up before this method is called. Custom object class has get and set methods for "uniquecalls" and "specialty". I've converted uniqueCalls which were string, into the boolean values.
ArrayList<CustomObjectClass> arrProducts;
public void PieChart() {
try {
String uniqueCalls;
String specialtyName;
CategorySeries series = new CategorySeries(" Pie Chart");
for (int i = 0; i < arrProducts.size(); i++) {
uniqueCalls = arrProducts.get(i).getUniqueCalls();
specialtyName = arrProducts.get(i).getSpecialtyName();
double db = Double.parseDouble(uniqueCalls);
Log.v("******", "String : " + uniqueCalls + " Double: " + db);
series.add(specialtyName, db);
}
// Color of each Pie Chart Sections
int[] colors = { Color.rgb(169, 169, 169), Color.rgb(255, 165, 0),
Color.rgb(128, 128, 128), Color.rgb(255, 160, 122),
R.color.BabyBlue,
R.color.BashfulPink, R.color.BasketBallOrange,
R.color.Chocolate,R.color.Khaki, R.color.LimeGreen, R.color.Maroon, };
// Instantiating a renderer for the Pie Chart
DefaultRenderer defaultRenderer = new DefaultRenderer();
for (int i = 0; i < arrProducts.size(); i++) {
specialtyName = arrProducts.get(i).getSpecialtyName();
SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
seriesRenderer.setColor(colors[i]);
seriesRenderer.setDisplayChartValues(true);
// Adding a renderer for a slice
defaultRenderer.addSeriesRenderer(seriesRenderer);
}
// defaultRenderer.setChartTitle("Product Wise Calling");
defaultRenderer.setChartTitleTextSize(20);
defaultRenderer.setZoomButtonsVisible(true);
// defaultRenderer.setBackgroundColor(Color.GRAY);
defaultRenderer.setLabelsColor(Color.BLACK);
defaultRenderer.setDisplayValues(true);
defaultRenderer.setClickEnabled(true);
defaultRenderer.setSelectableBuffer(10);
LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);
// Creating a Line Chart
mChartView = ChartFactory.getPieChartView(getBaseContext(), series,
defaultRenderer);
// Adding the Line Chart to the LinearLayout
chartContainer.addView(mChartView);
mChartView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SeriesSelection seriesSelection = mChartView
.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast.makeText(
ChartProductCallingSpecialtyWiseActivity.this,
"Please Select the Pie to see the value",
Toast.LENGTH_SHORT).show();
} else {
// display information of the clicked point
Toast.makeText(
ChartProductCallingSpecialtyWiseActivity.this,
" Pie Value : " + seriesSelection.getXValue(),
Toast.LENGTH_SHORT).show();
}
}
});
// ANOTHER INSTANCE EXAMPLE OF PLOTTING THE PIE CHART
// Creating an intent to plot Pie chart using dataset and
// multipleRenderer
// Intent intent = ChartFactory.getPieChartIntent(getBaseContext(),
// series, defaultRenderer, "Pie Chart");
//
// // Start Activity
// startActivity(intent);
} catch (Exception e) {
}
}