如何在MP Android折线图中添加点击事件监听?

3

我正在尝试监听折线图上的圆圈点击事件,但是我做不到。所以请帮帮我。

chart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
    @Override
    public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {

    }

    @Override
    public void onNothingSelected() {

    }
});

我尝试过这个,但它没有起作用!
2个回答

3

从您提供的代码很难判断,但当我调用 chart.setHighlightPerTapEnabled(false) 时,我遇到了这个问题。

从“highlight”与“selected”的名称来看,如果一开始不清楚 setHighlightPerTapEnabled 方法也会禁用 OnChartValueSelectedListener

我的解决方案是将 OnChartValueSelectedListener 替换为 OnChartGestureListener。以下是我实现的代码片段:

private class BarChartGestureListener implements OnChartGestureListener {
    private int _lastTappedIndex = -1;

    /* ... */

    @Override
    public void onChartSingleTapped(MotionEvent me) {
        final Entry entry = _barChart.getEntryByTouchPoint(me.getX(), me.getY());
        if (entry != null && _lastTappedIndex != entry.getXIndex()) {
            final Object data = entry.getData();

            // TODO: Insert your magic here...
        }
    }

    /* ... */
}

onChartSingleTapped 中,您可以获取被点击的 Entry 并编程方式将其突出显示或执行其他操作。

1

实现 OnChartValueSelectedListener 接口并按以下方式重写这两个方法

 @Override
    public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
        Toast.makeText(getContext(),entries.indexOf(e)+"",Toast.LENGTH_LONG).show();
    }

    @Override
    public void onNothingSelected() {
    }

在折线图上添加监听器 lineChart.setOnChartValueSelectedListener(this); 注意: Entries 是 Entry 对象的列表。 Toast 将显示所点击圆圈的索引值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接