android - 在MPAndroidChart中,如何为Barchart中的每个Bar添加点击事件?

标签 android mpandroidchart

我正在使用 MPAndroidChart 库来实现 Barchart , 如何在 Barchart 中为每个柱实现点击监听器.我想显示点击的bar Toast 中的值。如何实现这个?

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();

Legend 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 data = new BarData(xVals, dataSets);

    mChart.setData(data);
}

最佳答案

尝试实现 mpandroidchart 库中的 OnChartValueSelectedListener

关于android - 在MPAndroidChart中,如何为Barchart中的每个Bar添加点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28314966/

相关文章:

android - MpChart 默认显示标记 View

android - 在 MPAndroidChart 条形图中为条形设置不同的颜色

android - MPAndroidChart - 如何将搜索栏与 x 轴对齐以跳过额外的填充?

java - Android 内存不足错误

安卓宽度 :100% fix (website takeover issue)

java - 由 : java. lang.IllegalArgumentException : Binary XML file line #9: Must specify unique android:id, android :tag, 引起,或者有一个 id 为

android - MPAndroidChart PieChart 如何更改中心文本以显示不同的颜色和字体大小

android - 谷歌眼镜 API

android - 切换安卓x86屏幕分辨率

java - Mpandroidchart(水平图表)设置每个条形图不同的颜色