2010-03-17 12 views
5

Je ne vois aucune méthode comme setStyle pour la classe RatingBar. Comment puis-je définir le style de notation à partir du code?Définir le style de la barre de notation à partir du code

+1

double: http://stackoverflow.com/questions/2016249/how-to-programming-setting-style-attribute-in-a-view – Casebash

+3

PAS un doublon. Une barre de notation a différentes propriétés et fonctionnalités. Des choses comme la définition des images des étoiles, la hauteur des étoiles, etc ne sera pas répondu à cette question. – StackOverflowed

Répondre

11

Cela fonctionne pour moi (source):

RatingBar rating = 
    new RatingBar(context, null, android.R.attr.ratingBarStyleSmall); 
+0

Cela ne fonctionne pas tous les événements, mais la vue fonctionne fichier –

2

Vous devez le définir dans un fichier xml! Si vous voulez le changer à l'exécution, vous pouvez avoir deux View-s différents (rb) et les changer dans le programme (ajouter/supprimer de la mise en page) ou utiliser rb1.setVisibility (View.VISIBLE) et rb2.setVisibility (Voir .DISPARU);

<RatingBar 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" android:id="@+id/rb1" 
    style="?android:attr/ratingBarStyleSmall" 
    android:clickable="false" android:numStars="5"> 
</RatingBar> 
-1

Si vous créez le programme RatingBar comme suit la

note RatingBar = nouvelle RatingBar (contexte, null, android.R .attr.ratingBarStyleSmall);

de ne pas ajouter pour get

rating.setIsIndicator (false);

sinon la touche ne fonctionnera pas sur RatingBar.

Le android.R.attr.ratingBarStyleSmall vous donne de très petites étoiles si vous voulez avoir un utiliser des étoiles légèrement plus grand android.R.attr.ratingBarStyleIndicator

+0

Quelqu'un peut-il s'il vous plaît laissez-moi savoir pourquoi cette réponse a été déclassé que j'ai testé ce code et ça fonctionne bien. –