2016-07-04 10 views
0

Ich habe eine Anzeige rating bar:Android: Wie ändere ich die Bewertung ein Indikator Bewertungsleiste?

<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"/> 

Sie können sehen, dass die xml den Bewertungsbalken, sagt zur Zeit 2,5-Sterne widerzuspiegeln.

Bei einem Klick auf eine Schaltfläche, möchte ich es 5 Sterne reflektieren statt, so schrieb ich diesen Code:

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

Das Rating bar aktualisiert nicht bei allen. Ich weiß nicht, ob es daran liegt, dass es sich um eine Indikator-Bewertungsleiste handelt?

Wie kann ich dies richtig mit der Bewertungsleiste im Anzeigestil arbeiten?

Antwort

1

Ich fand die Antwort tatsächlich durch Versuch und Irrtum. Ich musste die Ansicht nur für ungültig erklären, da sie sich geändert hat und sich nicht automatisch ungültig macht.

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

ändern es zu

indicatorRatingBar.setRating(5.0f); 
+0

Nope. Dies wird keinen Unterschied machen. – Simon