在Android中,您可以使用“ android.widget.RatingBar ”以星号图标显示评分栏组件。 用户可以触摸,拖动或单击星号以轻松设置评级值。
在本教程中,我们向您展示如何使用XML来显示评级栏,少量的文本视图和一个按钮。 当用户单击等级栏上的星号时,选定的等级值将显示在文本视图中。 并且,如果用户单击按钮,则所选的评级值将显示为浮动消息(吐司消息)。
PS此项目在Eclipse 3.7中开发,并通过Android 2.3.3进行了测试。
1.评分栏
打开“ res / layout / main.xml ”文件,添加一个评级栏组件,几个textview和一个按钮。
注意
等级栏包含许多可配置的值。 在这种情况下,评分栏包含4个星,每个增加1.0值,因此,它包含最小值1.0(1个星)和最大值4.0(4个星)。 此外,它默认选择了第二颗星(2.0)。
文件:res / layout / main.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/lblRateMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rate Me"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="4"
android:stepSize="1.0"
android:rating="2.0" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lblResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Result : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtRatingValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
2.代码代码
在活动“ onCreate()
”方法中,将一个侦听器附加到评级栏上,并在更改评级值时触发。 按钮上的另一个监听器,单击按钮时触发。 阅读代码的注释,它应该是不言自明的。
文件:MyAndroidAppActivity.java
package com.mkyong.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
public class MyAndroidAppActivity extends Activity {
private RatingBar ratingBar;
private TextView txtRatingValue;
private Button btnSubmit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addListenerOnRatingBar();
addListenerOnButton();
}
public void addListenerOnRatingBar() {
ratingBar = (RatingBar) findViewById(R.id.ratingBar);
txtRatingValue = (TextView) findViewById(R.id.txtRatingValue);
//if rating value is changed,
//display the current rating value in the result (textview) automatically
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
txtRatingValue.setText(String.valueOf(rating));
}
});
}
public void addListenerOnButton() {
ratingBar = (RatingBar) findViewById(R.id.ratingBar);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
//if click on me, then display the current rating value.
btnSubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MyAndroidAppActivity.this,
String.valueOf(ratingBar.getRating()),
Toast.LENGTH_SHORT).show();
}
});
}
}
3.演示
运行应用程序。
1.结果,默认选择第二颗星。
2.触摸第三颗星, 更改额定值 ,在结果中显示当前选择的值(文本视图)。
3.触摸第一颗星星,然后单击提交按钮 ,当前选择的值将显示为浮动消息。
下载源代码
下载它– Android-RatingBar-Example.zip (15 KB)