Reputation: 2555
Is there any way to change the message "No chart data available" when the chart is not populated?
Edit: Found the answer
chart.setNoDataText("Description that you want");
Upvotes: 37
Views: 23592
Reputation: 11
If setNoDataText
is not working, you have to set it (and after that run an invalidate()
) when you are initializing the chart. Don't do it when you are right away to set the data.
Upvotes: 1
Reputation: 11
It's a little bit old thread, but I had the same issue so my solution was to set nodatatext immediately after the initialization of a chart:
PieChart pieChart = findViewById(R.id.chart) //in case of fragment view.findViewById(R.id.chart)
pieChart.setNoDataText("Loading");
Upvotes: 1
Reputation: 41
You need put pieChart.invalidate()
after setNoDataText()
:
@Override
public void setDataMessagePieChart() {
pieChart.setNoDataText("... your message ...");
pieChart.invalidate();
}
Upvotes: 3
Reputation: 21452
update answer
chart.setNoDataText("Description that you want");
Upvotes: 57
Reputation: 868
The Correct answer is here:
pie_chart.setNoDataText("No Data Available");
val paint:Paint = pie_chart.getPaint(Chart.PAINT_INFO)
paint.textSize = 40f
pie_chart.invalidate()
You also set other properties like text color, text typeface etc
Upvotes: 9
Reputation: 81
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firestore__eintraege__heute);
mChart = findViewById(R.id.chartZuckerHeute);
mChart.setNoDataText("PUT IT HERE ON TOP; WORKED FOR ME");
Upvotes: 6
Reputation: 14380
If you also want to customize look & feel, you can do it through Paint
object:
mChart.setNoDataText("Description that you want");
Paint p = mChart.getPaint(Chart.PAINT_INFO);
p.setTextSize(...);
p.setColor(...);
p.setTypeface(...);
...
Upvotes: 13