Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条RatingBar)

进度条类组件(星级评分条RatingBar)

  1. 星级评分条(RatingBar)
    通常用来表示对某种事物的支持度或都某种服务的满意度进行评分。
    在这里插入图片描述
    在activity_main.xml文件中,用来定义星级评分条。
    在这里插入图片描述
  2. 属性:
  • android:layout_width和android:layout_height :取值为wrap_content,即包裹其自身内容。
  • android:numStars :设置星级评分条中星星的数量。默认为5个。如果设置的星星太多一行屏幕宽度无法显示就不显示。
    在这里插入图片描述
  • android:rating :设置默认点亮几颗星。
    在这里插入图片描述
  • android:stepSize :设置每次可选择几颗星。默认为0.5,即每次选择半颗星。
    如果不设置每次选择就是选择半颗星:
    在这里插入图片描述
    stepSize设置为1:
    在这里插入图片描述
    在这里插入图片描述
  • android:isIndicator :设置为星星数不可更改,即星级评分条不可评分。
    在这里插入图片描述
    点击星星不可选择或退选:
    在这里插入图片描述
  1. 获取用户的选择结果(选中几颗星、每次可选几颗星、进度)
    首先给星级评分表定义一个id:
    在这里插入图片描述
    在Java文件中进行如下操作:
package com.example.ratingbardemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取星级评分条
        RatingBar ratingBar=findViewById(R.id.ratingbar);
        //在改变前先获取一次数据:
        //获取当前选中了几颗星,方法返回值为float,需要强转为String
        String rating=String.valueOf(ratingBar.getRating());
        Toast.makeText(MainActivity.this,"rating:"+rating,Toast.LENGTH_SHORT).show();
        //获取每次点击可选择几颗星
        String stepSize=String.valueOf(ratingBar.getStepSize());
        Toast.makeText(MainActivity.this,"stepSize:"+stepSize,Toast.LENGTH_LONG).show();
        //获取当前进度
        String progress=String.valueOf(ratingBar.getProgress());
        Toast.makeText(MainActivity.this,"progress:"+progress,Toast.LENGTH_SHORT).show();
        //设置评分改变监听器,每次改变时再获取数据:
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                //显示当前选中了几颗星,需要强转为String
                Toast.makeText(MainActivity.this,"rating:"+String.valueOf(rating),Toast.LENGTH_LONG).show();
                //获取每次点击可选择几颗星
                String stepSize=String.valueOf(ratingBar.getStepSize());
                Toast.makeText(MainActivity.this,"stepSize:"+stepSize,Toast.LENGTH_LONG).show();
                //获取当前进度
                String progress=String.valueOf(ratingBar.getProgress());
                Toast.makeText(MainActivity.this,"progress:"+progress,Toast.LENGTH_SHORT).show();
            }
        });
    }
}

运行结果:
刚开始运行:
在这里插入图片描述
改变评分:
在这里插入图片描述

发布了32 篇原创文章 · 获赞 10 · 访问量 5475

猜你喜欢

转载自blog.csdn.net/weixin_44480874/article/details/104278274