我想将合并图表与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() {
}
});
答案 0 :(得分:1)
必须设置lineData.setHighlightEnabled(false);