我正在使用MPAndroidChart
在我的Android
应用程序上绘制一些图表,并且我想更改数据不可用时显示的默认消息。
我使用的是CombinedChart
和BarChart
,但在没有数据的情况下,我可以在数据不可用时更改文字。
我知道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.
提前致谢!
答案 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()
。