[Android Studio] RatingBarをスライドでトーストを出す

どうも、tatsuです!

今日は、RatingBarをスライドでトーストを出すやり方を説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

RatingBarをスライドでトーストを出す

activity_main.xml

activity_main.xmlは以下のようにします。

    <RatingBar
        android:id="@+id/stars"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:rating="3"
        android:stepSize="1"/>

MainActivity.java

MainActivity.javaは以下のようにします。

public class MainActivity extends AppCompatActivity {

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

        // idがstarsのRatingBarを取得
        RatingBar ratingBar = (RatingBar) findViewById(R.id.stars);
        // ratingBarが変更された時の処理
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){
            /**
             * @param ratingBar1 RatingBarが入る
             * @param rating 現在の値
             * @param isUserAction ユーザの操作による変更かどうか
             */
            public void onRatingChanged(RatingBar ratingBar1, float rating, boolean isUserAction){
                // 現在の値を数値から文字列に変換
                String ratingStr = String.format("%f",rating);
                Toast toast = Toast.makeText(MainActivity.this, ratingStr, Toast.LENGTH_SHORT);
                toast.show();
            }
        });
    }

}

スライドした結果

※↓星5にスライド時

補足
現在の値で小数点以下の0が気になる方は以下のようにしましょう。

            public void onRatingChanged(RatingBar ratingBar1, float rating, boolean isUserAction){
                // 現在の値を数値から文字列に変換(float→int型に変更)
                int ratingInt = (int) rating;
                String ratingStr = String.valueOf(ratingInt);
                Toast toast = Toast.makeText(MainActivity.this, ratingStr, Toast.LENGTH_SHORT);
                toast.show();
            }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です