首页 > 解决方案 > onValueSelected() 没有在 BarChart 中调用,而是 onNothingSelected() 每次单击任何条形图或 BarChart 中的任何位置时都会调用

问题描述

OnChartValueSelectedListener为 BarChart 设置,但是当我单击任何条形图或 BarChart 中的任何位置时,只有onNothingSelected()调用和onValueSelected不调用,甚至一次都没有。我想要回电,告诉我选择了哪个栏。

我尝试设置 setOnChartGestureListener() 但这也不起作用。请帮我解决问题。

mBarChart.setOnChartValueSelectedListener(this);
mBarChart.setHighlightFullBarEnabled(true);
ArrayList<BarEntry> yValsProp1 = new ArrayList<>();
for (int i = 0; i < mFeeAmount.size(); i++) {
    float f1 = mFeeAmount.get(i).floatValue();
    float f2 = mFineAmount.get(i).floatValue();

    yValsProp1.add(new BarEntry(i, new float[]{f1, f2}));
}
//Setting data to the bar
BarDataSet barDataSet = new BarDataSet(yValsProp1, " ");
barDataSet.setColors(getColors());
barDataSet.setHighlightEnabled(false);
barDataSet.setDrawValues(true);
BarData barData = new BarData(barDataSet);
barData.setBarWidth(0.55f);
mBarChart.setScaleEnabled(false);
mBarChart.getDescription().setEnabled(false);
mBarChart.getLegend().setEnabled(false);

//hiding Axis lines
mBarChart.getAxisLeft().setDrawAxisLine(false);
mBarChart.getAxisRight().setDrawAxisLine(false);
mBarChart.setFitBars(false);
mBarChart.setDrawValueAboveBar(true);
mBarChart.setData(barData);
mBarChart.setClipValuesToContent(false);

mBarChart.setVisibleXRange(6, 6);
mBarChart.getLegend().setForm(Legend.LegendForm.CIRCLE);
mBarChart.invalidate();

标签: javaandroidbar-chartmpandroidchart

解决方案


我得到了我做错的地方,我刚刚删除了这一行

barDataSet.setHighlightEnabled(false);

默认情况下它会是真的。


推荐阅读