Установка слушателя на RatingBar всегда вызывается - PullRequest
0 голосов
/ 26 июня 2019

Я использую RatingBar в своем приложении и пытаюсь настроить прослушиватель на него, когда пользователь оценивает.

xml

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

Java

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

    (...) //findViewById
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
            Toast.makeText(context, "on rating bar changed", Toast.LENGTH_SHORT).show();
        }
    });

}

Однако слушатель ( setOnRatingBarChangeListener ) всегда вызывается при запуске действия, несмотря на любое физическое взаимодействие с ним.

В чем может быть моя проблема здесь?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019
Use like this - 

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

    (...) //findViewById
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
if(fromUser){
            Toast.makeText(context, "on rating bar changed", Toast.LENGTH_SHORT).show();
}
        }
    });

}
0 голосов
/ 26 июня 2019

Вы можете проверить это с помощью параметра fromUser в функции onRatingChanged.Если значение истинно, это означает, что рейтинг был изменен пользователем.

...