2016-03-26 4 views
0

Ich habe einen Alarmdialog verwendet, um eine Bewertungsleiste zu erhalten. Aber ich kann die Anzahl der angezeigten Sterne nicht ändern (jetzt wird angezeigt 6..i will es 5) ..android-Kann keine Sterne in der Bewertungsleiste im Alarmdialog ändern

Es gibt keine entsprechende XML für die Bewertungsleiste, weil es dynamisch gemacht wird. Ive versuchte die setNumStars() - Methode, aber keine Verwendung .... auch versucht, zu wrapcontent zu ändern.

hier ist meine code..please Hilfe

enter code here 

protected void showRatingAlert() { 
     // TODO Auto-generated method stub 

     AlertDialog.Builder ab = new AlertDialog.Builder(AndroidLoadImageFromURLActivity.this); 
     ab.setTitle("Enter Rating");ab.setMessage("STARS"); 
     final RatingBar rat = new RatingBar(AndroidLoadImageFromURLActivity.this); 
     rat.setNumStars(5); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
     rat.setLayoutParams(lp); 
     ab.setView(rat); 
     ab.setIcon(R.drawable.ic_launcher); 
     ab.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
float val = rat.getRating(); 

if(ur.equals("0")) 
{ 
    nr = val; 
} 
else 
{ 
    nr = (art+val)/2; 

} 
+0

Haben Sie versucht meine Lösung? –

Antwort

0

Von RatingBar docs:

Legt die Anzahl der Sterne an. Damit diese richtig angezeigt werden, wird empfohlen, dass die Layoutbreite dieses Widgets Wrap-Inhalt ist.

http://developer.android.com/reference/android/widget/RatingBar.html#setNumStars(int)

in Ihrem Fall So können Sie das Layout erstellen, zum Beispiel layout/rating.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/root" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <RatingBar 
     android:id="@+id/ratingbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:numStars="5"/> 

</LinearLayout> 

Und dieses Layout als Dialog Kontext verwenden. Hier ist der geänderte Dialog-Code:

protected void showRatingAlert() { 
    // TODO Auto-generated method stub 

    AlertDialog.Builder ab = new AlertDialog.Builder(AndroidLoadImageFromURLActivity.this); 
    ab.setTitle("Enter Rating");ab.setMessage("STARS"); 

    //inflating layout and finding RatingBar widget 
    View root = ((LayoutInflater) AndroidLoadImageFromURLActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.rating, null); 
    ab.setView(root); 

    final RatingBar rat = (RatingBar)root.findViewById(R.id.ratingbar); 


    rat.setNumStars(5); 


    ab.setIcon(R.drawable.ic_launcher); 

    //and all your existing code 
    ... 
Verwandte Themen