Ретрофит выполняет вызов для получения статистики асинхронно, но вы устанавливаете текст в TextView
синхронно. Вы звоните getStatistics()
, который запускает вызов, чтобы получить новую статистику, но не ждет его завершения. Затем вы сразу же устанавливаете текст, после чего объект statistics
все еще равен нулю. Вам необходимо обновить TextView
после получения успешного ответа. Например:
public void init() {
getStatistics();
}
private void getStatistics() {
...
@Override
public void onResponse(Call<STATISTIC> call, Response<STATISTIC> response) {
if (response.isSuccessful()) {
setStatistics(response.body());
// Call the code to update your UI here, as we have now received the stats
updateUI();
} else {
...
}
}
...
}
...
private void updateUI() {
textNrCompleted.setText(String.format("%s", statistics.getTask()));
}