Android: Как да променя рейтинга в лентата с рейтинг на индикатор?

Имам лента за оценка на индикатора:

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:rating="2.5"
    android:numStars="5"/>

Можете да видите, че xml казва на лентата за оценка да отразява 2,5 звезди в момента.

С едно натискане на бутон искам вместо това да отразява 5 звезди, затова написах този код:

indicatorRatingBar = (RatingBar) findViewById(R.id.ratingBar);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        indicatorRatingBar.setIsIndicator(false);
        indicatorRatingBar.setRating(5);
        indicatorRatingBar.setIsIndicator(true);
    }
});

Лентата за оценка изобщо не се актуализира. Не знам дали е, защото това е лента за оценка на индикатора?

Как мога да накарам това да работи правилно с лентата за оценка, зададена в стила на индикатора?


person Simon    schedule 04.07.2016    source източник


Отговори (2)


Всъщност намерих отговора чрез проба и грешка. Просто трябваше да извикам invalidate на изгледа, тъй като той се промени и не се самовалира автоматично.

indicatorRatingBar = (RatingBar) findViewById(R.id.ratingBar);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        indicatorRatingBar.setRating(5);
        indicatorRatingBar.invalidate();
        indicatorRatingBar.setIsIndicator(true);
    }
});
person Simon    schedule 04.07.2016

Променете го на

indicatorRatingBar.setRating(5.0f);
person Dhruvi    schedule 04.07.2016
comment
не Това няма да има значение. - person Simon; 04.07.2016