2016-07-04 39 views
0

我有一個指標的評價吧: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); 
    } 
}); 

該評級酒吧完全不更新。我不知道這是否是因爲它是一個指標評級欄?

如何使用指示器樣式設置的評級欄使其正常工作?

回答

1

我實際上通過試錯找到了答案。我只需要在視圖上調用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); 
    } 
}); 
-1

將其更改爲

indicatorRatingBar.setRating(5.0f); 
+0

都能跟得上。這沒有什麼區別。 – Simon