如何在MPAndroidChart库上没有数据时更改文本?

时间:2016-08-03 12:44:39

标签: android mpandroidchart

我正在使用MPAndroidChart在我的Android应用程序上绘制一些图表,并且我想更改数据不可用时显示的默认消息。

我使用的是CombinedChartBarChart,但在没有数据的情况下,我可以在数据不可用时更改文字。

我知道Stackoverflow上与此主题相关的问题很少。例如:

但所有这些都引用了以下一种或多种方法:

.setDescription("");
.setNoDataTextDescription("Custom message.");
.setNoDataTextDescription("Custom message");
.setNoDataText("Custom message");

他们中的任何人都为我工作。

我尝试更改文本的代码片段如下:

combinedChart.setDescription(null);
combinedChart.setNoDataText("No data");

combinedChart.setData(data);
combinedChart.animateXY(2500,2500);

如果数据不可用,我如何向用户提供不同的短信?

编辑:我添加了.invalidate方法作为@SudhakarRaju建议,但它也不起作用。我的实际代码是:

combinedChart.setDescription(null);
combinedChart.setNoDataText("No data");
combinedChart.setNoDataTextDescription("No data");
combinedChart.setNoDataTextDescription("No data");

combinedChart.invalidate();
combinedChart.setData(data);
combinedChart.animateXY(2500,2500);
//I also tried to put combinedChart.invalidate(); here but it also does not work.

提前致谢!

3 个答案:

答案 0 :(得分:0)

与您提到的相同,但您必须添加一行。 combinedChart.invalidate();这会奏效。

答案 1 :(得分:0)

如果没有数据,此代码允许您设置图表的样式:

            mChart.setNoDataText(getResources().getString(R.string.no_data_available));
            mChart.setNoDataTextColor(BaseActivity.getAppColor(R.color.black));

            // from: https://github.com/PhilJay/MPAndroidChart/issues/89
            Paint p = mChart.getPaint(Chart.PAINT_INFO);
            if (p != null) {
                p.setTextSize(getResources().getInteger(R.integer.no_data_text_size));
            }

答案 2 :(得分:0)

删除combinedChart.setData(data)通话。

由于某种原因,如果您发送一个包含一个空数据集的空数据对象,则不会显示“无数据”文本。

我遇到了同样的问题,我通过不设置数据为空来解决此问题,或者使用combinedChart.clear()