Android评分栏示例

在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.结果,默认选择第二颗星。

android rating demo1

2.触摸第三颗星, 更改额定值 ,在结果中显示当前选择的值(文本视图)。

android rating demo2

3.触摸第一颗星星,然后单击提交按钮 ,当前选择的值将显示为浮动消息。

android rating demo3

下载源代码

下载它– Android-RatingBar-Example.zip (15 KB)

参考文献

  1. Android RatingBar JavaDoc
  2. Android RatingBar示例

翻译自: https://mkyong.com/android/android-rating-bar-example/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值