2016-08-03 3 views
0

Я использую MPAndroidChart, чтобы нарисовать некоторые диаграммы в моем приложении Android, и я хотел бы изменить сообщение по умолчанию, которое появляется, когда данные недоступны.Как изменить текст, когда данные недоступны в библиотеке MPAndroidChart?

Я использую 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); 

Как я могу предоставить другое текстовое сообщение пользователю, когда данные не доступны?

EDIT: Я добавил .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

Так же, как вы упомянули выше, но вам нужно добавить одну дополнительную строку. combinedChart.invalidate(); Это будет работать.

+0

Я сожалею, но это не работает. –

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)); 
      }