我使用MPAndroidChart库实现了 Barchart ,如何实现 Barchart 中每个栏的点击侦听器。我想显示Toast中单击的 bar 值。如何实现这一点?
mChart =(BarChart)findViewById(R.id.chart1);
mChart.setDrawYValues(true);
mChart.setDrawValueAboveBar(true);
mChart.setDescription("");
mChart.setMaxVisibleValueCount(10);
mChart.set3DEnabled(false);
mChart.setPinchZoom(false);
mChart.setUnit(" mg / dL");
mChart.setDrawGridBackground(false);
mChart.setDrawHorizontalGrid(true);
mChart.setDrawVerticalGrid(false);
mChart.setValueTextSize(10f);
mChart.setDrawBorder(false);
XLabels xl = mChart.getXLabels();
xl.setPosition(XLabelPosition.BOTTOM);
xl.setSpaceBetweenLabels(10);
xl.setCenterXLabelText(true);
YLabels yl = mChart.getYLabels();
yl.setLabelCount(8);
yl.setPosition(YLabelPosition.LEFT);
setData();
图例l = mChart.getLegend();
l.setPosition(LegendPosition.BELOW_CHART_RIGHT);
l.setFormSize(8f);
l.setXEntrySpace(4f);
mChart.animateY(3000);
private void setData(){
ArrayList< String> xVals = new ArrayList< String>();
xVals.add(" F");
xVals.add(" PP");
xVals.add(" U");
xVals.add(" C");
xVals.add(" TC");
xVals.add(" Tri");
xVals.add(" HDL");
xVals.add(" LDL");
xVals.add(" VLDL");
ArrayList< BarEntry> yVals1 = new ArrayList< BarEntry>();
yVals1.add(new BarEntry(95,0));
yVals1.add(new BarEntry(99,1));
yVals1.add(new BarEntry(19,2));
yVals1.add(new BarEntry((float)1.21,3));
yVals1.add(new BarEntry(250,4));
yVals1.add(new BarEntry(323,5));
yVals1.add(new BarEntry(47,6));
yVals1.add(new BarEntry(135,7));
yVals1.add(new BarEntry(68,8));
BarDataSet set1 = new BarDataSet(yVals1,"");
//set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
set1.setColors(new int [] {R.color.green,R.color.green,R.color.green,R.color.green,R.color.margin,R.color.red,R .color.green,R.color.green,R.color.green},getApplicationContext());
set1.setBarSpacePercent(50f);
ArrayList< BarDataSet> dataSets = new ArrayList< BarDataSet>();
dataSets.add(set1);
BarData数据=新的BarData(xVals,dataSets);
mChart.setData(data);
}
解决方案
尝试实现OnChartValueSelectedListener出现在mpandroidchart库中