Как использовать RatingBar в моем музыкальном плеере, который я создал для Android?
Я создал музыкальный проигрыватель для Android для моего последнего проекта года. Он имеет основные функции, такие как воспроизведение, следующий, предыдущий, а также полосу прокрутки для выбора песен из списка воспроизведения.
Я хотел использовать полосу рейтинга, чтобы позволить пользователю устанавливать оценки для песен, но если я устанавливаю оценку для 1 песни, а затем выбираю другую песню из списка воспроизведения, такая же оценка устанавливается и для этой песни.
Как мне сделать так, чтобы он устанавливал разные оценки для разных песен?
2 ответа
Я думаю, установить скорость рейтинговой шкалы на значение по умолчанию при смене песни, OnClickListener
на предыдущую и следующую на вашей деятельности.
ratingbar.setRating(3); //For three stars
И сохранить скорость песни с OnRatingBarChange
,
Есть ли обратный вызов, когда песня меняется? По сути, нам нужно было бы увидеть какой-то код, но вы захотите сбросить рейтинг обратно до 2 звезд, или любого количества звездочек по умолчанию. Затем вы захотите использовать OnRatingBarChange для сохранения оценок в базе данных. Похоже, что у класса "MediaPlayer" есть OnCompletionListener, чтобы сообщить, когда дорожка закончена.
RatingBar ratingBar = (RatingBar)view.findViewById(R.id.ratingbar);
RatingBar.OnRatingBarChangeListener barListener =
new RatingBar.OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) {
// Do your database stuff here
}
}
а затем ваши вещи для завершения
//mp is the reference to your media player
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// Do what you need to do to reset the rating bar. Might need to make a public reference or create a way for this inner class to access the rating bar.
}
});