2016-09-09 13 views
-2

私のコードにrating barを追加しようとしています。私はonRatingBarChangeListnerを使用して、評価バーの値を取得しています。しかし、rating barはまったく応答していません。選択されたり、色が変わったりすることはありません。評価バーのonRatingBarChangeListnerが機能しない理由を教えてください。

public class SurveyActivity extends AppCompatActivity implements getQuestionsAsyncTask.GetQuestions,RatingBar.OnRatingBarChangeListener{ 

private ArrayList<Question> mQuestionsArrayList; 
private TextView mTextQuestion1,mTextQuestion2; 
private RatingBar ratingbar1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_survey); 

// addListenerOnButtonClick(); 

    mTextQuestion1 = (TextView)findViewById(R.id.textQuestion1); 
    mTextQuestion2 = (TextView)findViewById(R.id.textQuestion2); 

    Button next = (Button)findViewById(R.id.btn_next); 

    final RatingBar ratingBar = (RatingBar)findViewById(R.id.MyRating); 

    next.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      float rating=ratingBar.getRating(); 
      Toast.makeText(getApplicationContext(),"Your Selected Ratings : " + String.valueOf(rating),Toast.LENGTH_LONG).show(); 

     // startActivity(new Intent(SurveyActivity.this,UserDetailsActivity.class)); 
     } 
    }); 



    mQuestionsArrayList = new ArrayList<>(); 

    getQuestionsAsyncTask getQuestionsAsyncTask = new getQuestionsAsyncTask(this,this,mQuestionsArrayList); 
    getQuestionsAsyncTask.execute(); 
} 
public void onRatingChanged(RatingBar ratingBar, float rating, 
          boolean fromUser) { 

    Toast.makeText(getApplicationContext(),"Your Selected Ratings : " + String.valueOf(rating),Toast.LENGTH_LONG).show(); 

} 

これを試したが、うまくいかない。

<RatingBar 
     android:id="@+id/MyRating" 
     style="?android:attr/ratingBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:isIndicator="true" 
     android:numStars="5" 
     android:stepSize="0.1" 
     android:layout_above="@+id/textQuestion2" 
     android:layout_alignParentEnd="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginStart="10dp" 
     android:layout_alignParentRight="true" /> 

も間違って何が起こっているtutorial

これを試してみましたか?誰でも助けてくれますか? ..あなたに感謝

EDIT:まだそれは働いていないの両方の答えをしようとしました:

public class SurveyActivity extends AppCompatActivity implements getQuestionsAsyncTask.GetQuestions,RatingBar.OnRatingBarChangeListener{ 

    private ArrayList<Question> mQuestionsArrayList; 
    private TextView mTextQuestion1,mTextQuestion2; 
    private RatingBar ratingbar1; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_survey); 

     Button next = (Button)findViewById(R.id.btn_next); 

     final RatingBar ratingBar = (RatingBar)findViewById(R.id.MyRating); 
     ratingBar.setOnRatingBarChangeListener(this); 


     next.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       float rating=ratingBar.getRating(); 
       Toast.makeText(getApplicationContext(),"Your Selected Ratings : " + String.valueOf(rating),Toast.LENGTH_LONG).show(); 

      } 
     }); 
    } 
    @Override 
    public void onRatingChanged(RatingBar ratingBar, float v, boolean b) { 

      v = ratingBar.getRating(); 

      Toast.makeText(getApplicationContext(), "Your Selected Ratings : " + String.valueOf(v), Toast.LENGTH_LONG).show(); 

    } 

答えて

1

また、あなたのratingBar

setOnRatingBarChangeListenerを追加

@Override 
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) { 

} 

を次のようにあなたのonRatingChangedはする必要があります

ratingBar.setOnRatingBarChangeListener(this); 

編集1は:トーストについて

String rating=String.valueOf(ratingBar.getRating()); 
Toast.makeText(getApplicationContext(), rating, Toast.LENGTH_LONG).show(); 

編集2以下試してください:あなたは理由isIndicator財産の評価を変更することはできません。アンドロイドのマニュアルどおり

アンドロイド:isIndicatorこの評価バーが(ユーザーによってと 非変更)の指標であるかどうか。

ので、そのプロパティを削除し、私は

style="?android:attr/ratingBarStyleSmall" 

行を削除した理由も

<RatingBar 
     android:id="@+id/MyRating" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:numStars="5" 
     android:stepSize="0.1" 
     android:layout_above="@+id/textQuestion2" 
     android:layout_alignParentEnd="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginStart="10dp" 
     android:layout_alignParentRight="true" /> 

を以下にごratingBarを変更するには、あなたが上の変更リスナーを設定するのを忘れthis

+0

編集した質問を確認してください。 @indramurari – Sid

+0

@Sid何がうまくいかない。あなたのトースト?私の編集 – Nikhil

+0

がトーストしていないことを確認してください。評価バーの星は選択されません。 @indramurari – Sid

1

を参照してください。 ratingBarビュー、

final RatingBar ratingBar = (RatingBar)findViewById(R.id.MyRating); 
ratingBar.setOnRatingBarChangeListener(this); 
+0

編集した質問を確認してください。 @petey – Sid

関連する問題