将图表与BarChart + LineChart onClickListener组合在一起

时间:2018-04-04 14:53:44

标签: android mpandroidchart

我想将合并图表与BarChart和LineChart一起使用,但我想将barChart设置为仅可点击。现在,如果点击位于该线附近,则该线的点击将触发,而不是其后面的栏(使用stackedbars)。下面是onClickListener的代码(我必须检查条目的类型以避免崩溃)。

chart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
    @Override
    public void onValueSelected(Entry e, Highlight h) {
        float val = 0;
        if (e instanceof BarEntry) {
            float[] vals = ((BarEntry) e).getYVals();
            if (vals != null) {
                val = vals[h.getStackIndex()];
            } else {
                val = e.getY();
            }
        } else {
            val = e.getY();
        }
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setMessage(((BarModel) e.getData()).getName() + " - " + val + "%");
        alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                chart.highlightValues(null);
                dialog.dismiss();
            }
        });
        alertDialog.setCancelable(false);
        alertDialog.show();
    }

    @Override
    public void onNothingSelected() {

    }
});

1 个答案:

答案 0 :(得分:1)

必须设置lineData.setHighlightEnabled(false);