В этой коротенькой статье мы рассмотрим небольшой пример использования виджета ProgressBar в Android.
Виджет RatingBar используется в Android для получения рейтинга чего-либо от пользователя. Сам результат нажатия на одну из звездочек возвращается в виде числа с плавающей точкой.
Пример работы с виджетом RatingBar в Android
Давайте рассмотрим наиболее важные атрибуты RatingBar
:
- атрибут
android:numStars
устанавливает количество звезд вRatingBar
- android:stepSize — заполнение звездочки после нажатия на нее пользователем. Например, если указать
stepSize
в 0.5, то по нажатию на звездочку виджетаRatingBar
закрасится только ее половина. android:isIndicator
является ли этотRatingBar
кликабельным для пользователя.- Атрибут
style="?android:attr/ratingBarStyleSmall"
делает звездочки виджетаRatingBar
маленькими.
Важные моменты в RatingBar:
Метод getRating()
возвращает значение рейтинга.
Реализация интерфейса OnRatingBarChangeListener
обязывает нас переопределить метод onRatingChanged()
, который отслеживает изменение рейтинга в виджете RatingBar
:
1 |
onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) |
В этом уроке мы будем отображать рейтинг виджета RatingBar
в тосте (всплывающем окне):
XML макет:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:numStars="6" android:stepSize="0.5" /> </RelativeLayout> |
Обратите внимание, мы указали 6 звезд в виджете и шаг изменения рейтинга 0.5.
Листинг класса MainActivity
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package ua.com.prologistic; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.RatingBar; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private RatingBar ratingbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ratingbar = (RatingBar) findViewById(R.id.ratingbar); // устанавливаем слушатель на RatingBar ratingbar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { // когда рейтинг меняется, то вызываем Toast с текущим рейтингом @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Toast.makeText(MainActivity.this, "Вы оценили на " + rating, Toast.LENGTH_LONG).show(); } }); } } |
В результате получим следующее:
Следите за обновлениями сайта Программирование на Java | Android.
Только есть один минус он не сохраняется !
так как это без конечная оценка какая то получается