Главная » Учимся работать с Rating Bar | |
Сегодня мы научимся работать с таким элементом Android интерфейса, как Rating Bar. Rating Bar служит для того, чтобы разработчики приложений подсовывали его под нос своим пользователям с просьбой оценить приложение. Уверен, всем нам этот элемент Android интерфейса до боли знаком. А теперь мы научимся с ним обращаться и тоже будем пихать его в наши приложения. Создаем новый проект в Android Studio. Приложение будет состоять из заголовка, элемента Rating Bar, в котором будет выбираться рейтинг, а также еще одного элемента TextView, в котором будет постоянно писаться, сколько звезд в рейтинге выбрано на данный момент. Начнем с настройки рабочего экрана. Открываем файл activity_main.xml и добавляем туда 2 TextView и Rating Bar:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Работаем с Rating Bar"
android:layout_gravity="center"
android:textSize="12pt"/>
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
android:rating="0.0"
android:layout_gravity="center"/>
<TextView
android:id="@+id/ResText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Выбрано звезд : "
android:layout_gravity="center"
android:textSize="12pt"/>
</LinearLayout>
Наше приложение получило вот такой интерфейс: Как видите, в коде элемента Rating Bar все довольно понятно. Команды: - numStars="" - указывает количество звезд, которые будут в Rating Bar. Мы указали их 5, можете указать больше или меньше, как хотите; - stepSize="" - в этой строке мы указываем с каким шагом можно делать выбор звезд, то есть, с шагом в одну звезду (1), в пол звезды (0,5), две - 2 и так далее. В нашем примере указано шаг в 1 звезду; - rating - здесь мы указываем, сколько звезд в Rating Bar будет выбрано по умолчанию. Выставим 2 - две звездочки уж будут выбраны при запуске, приложения, 1 - одна выбрана. У нас 0 - ни одной выбранной. Ну здесь все понятно, теперь идем в файл MainAtivity.java и делаем тут основную работу с помощью этого кода:
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
//Объявляем использование RatingBar и TextView:
private RatingBar mRatingBar;
private TextView mRatingText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Связываемся с созданными в activity_main.xml элементами:
mRatingBar = (RatingBar) findViewById(R.id.ratingBar);
mRatingText = (TextView) findViewById(R.id.ResText);
//Добавляем слушателя изменения состояний Rating Bar:
addListenerOnRatingBar();
}
//Описываем работу слушателя изменения состояний Rating Bar:
public void addListenerOnRatingBar() {
//При смене значения рейтинга в нашем элементе Rating Bar,
//это изменение будет отображаться в элементе TextView
mRatingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
//Присваиваем элементу TextView текстовое значение,
//которое указано в скобках и добавляем значение из RatingBar:
mRatingText.setText("Выбрано звезд: " + String.valueOf(rating));
}
});
}
}
Мы инициализировали элементы RatingBar и TextView, создали слушателя изменения показаний на рейтинге ListenerOnRatingBar, это значит, что он прослеживает все изменения состояния RatingBar. Далее, в описании метода работы этого слушателя мы указываем, что при смене состояния рейтинга, элементу TextView, находящемуся под рейтингом, присваивается новое значение, которое состояния из двух компонент: текста "Выбрано звезд " и значения показания рейтинга, преобразованного в строку, текст, командой String.valueOf(rating). Запускаем приложение и смотрим на результат: Все работает, отлично, теперь пользователей наших будущих приложений ничто не спасет от вечных всплывающих окон в просьбой оценить приложение :). | |
|
Всего комментариев: 0 | |
|
|