最終年度のプロジェクトのために、Android 用の音楽プレーヤーを作成しました。再生、次、前、プレイリストから曲を選択するためのスクロールバーなどの基本的な機能があります。
ユーザーが曲の評価を設定できるように評価バーを使用したかったのですが、1 つの曲の評価を設定してからプレイリストから別の曲を選択すると、その曲にも同じ評価が設定されます。
曲ごとに異なるレーティングを設定するにはどうすればよいですか?
最終年度のプロジェクトのために、Android 用の音楽プレーヤーを作成しました。再生、次、前、プレイリストから曲を選択するためのスクロールバーなどの基本的な機能があります。
ユーザーが曲の評価を設定できるように評価バーを使用したかったのですが、1 つの曲の評価を設定してからプレイリストから別の曲を選択すると、その曲にも同じ評価が設定されます。
曲ごとに異なるレーティングを設定するにはどうすればよいですか?
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
}
}
そしてonCompleteのためのもの
//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.
}
});