android progressBar не обновляет отображение прогресса / drawable

две панели, которые показывают прогресс игры. Если пользователь получает очки или время истекло и т. Д., Индикаторы прогресса должны быть обновлены:

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 (...) в конце показывает ВСЕГДА правильные значения, но ИНОГДА визуальные полосы на индикаторах выполнения не показывают правильные результаты. Они показывают прогресс, который был установлен ранее, даже если геттеры для «max» и «progress» возвращают правильные значения (в этом примере полоса показывает около 20% (вместо 100%) для levelHoldBar и около 2% (вместо 40). %) для levelUp-бара). Я не могу понять, почему вывод журнала правильный, а чертежи неправильные !? TextView (tv) обновляется правильно! Что тут происходит? Как я могу это исправить?

22
задан Stuck 3 December 2010 в 17:12
поделиться