два бара, которые показывают ход игры. Если пользователь получает очки или время и т.д., Необходимо обновить progressBars:
private TextView tv;
private ProgressBar levelHoldBar;
private ProgressBar levelUpBar;
//...
private void updateViews() {
// ...
levelHoldBar.setMax(currentLevel.getThreshold());
levelHoldBar.setProgress(currentPoints > currentLevel.getThreshold() ? currentLevel.getThreshold() : currentPoints);
levelUpBar.setMax(nextLevel.getThreshold());
levelUpBar.setProgress(currentPoints > nextLevel.getThreshold() ? nextLevel.getThreshold() : currentPoints);
tv.setText(currentPoints+"/"+currentLevel.getThreshold());
Log.d(TAG, "hold prog/max "+levelHoldBar.getProgress()+"/"+levelHoldBar.getMax());
Log.d(TAG, "up prog/max "+levelUpBar.getProgress()+"/"+levelUpBar.getMax());
}
т. Выходы:
12-03 17:48:33.918: DEBUG/MainActivity(6829): hold prog/max 20/20
12-03 17:48:33.918: DEBUG/MainActivity(6829): up prog/max 20/50
В конце файла Log.d(...) отображается ВСЕГДА правильные значения, но SOMETIMES визуальные бары progressBars не показывают правильные прогесты. Они показывают прогресс, который был установлен ранее, даже если геттеры для "max" и "progress" возвращают правильные значения (в примере на панели отображается около 20% (вместо 100%) для уровня HoldBar и около 2% (вместо 40 %) для уровня Up-bar). Я не могу понять, почему лог-вывод правильный, но чертежи ошибочны!? TextView (tv) обновлен правильно! Что тут происходит? Как я могу это исправить?