XAxis上MPAndroidChart ValueFormatter的奇怪行为

时间:2018-07-30 15:48:20

标签: android mpandroidchart linechart

我有以下代码:

xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
    public String getFormattedValue(float value, AxisBase axis) {
        int intValue = (int) value;
        int xVal = intValue / 120 / 12;

        if (xVal > prevXVal) {
            prevXVal = xVal;
            return ConvertUnits.toString(xVal);
        } else {
            return "";
        }
    }
});

由于某些未知原因,XAxis上没有显示任何值。我将prevXVal初始化为0,如果删除if语句,可以看到X轴上的值正确。我基本上想从X轴上删除重复的值,并且仅在xVal更改时显示这些值。我不确定为什么此代码将无法正常工作,因为考虑到删除时if语句不会始终为假,因此我看不到值会发生变化。

有人知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

好的,我知道了。这似乎可以解决问题:

xAxis.setValueFormatter(new IAxisValueFormatter() {
    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        int intValue = (int) value;
        String xVal = ConvertUnits.toString(intValue / 120 / 12);

        if (!xVal.equals(prevXVal)) {
            prevXVal = xVal;
            if (xVal.equals("0")) {
                return "";
            } else {
                return xVal;
            }
        } else {
            return "";
        }
    }
});