欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-30 22:41:58
...

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

  1. 星级评分条()
    通常用来表示对某种事物的支持度或都某种服务的满意度进行评分。
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
    在activity_main.xml文件中,用来定义星级评分条。
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
  2. 属性:
  • android:layout_width和android:layout_height :取值为wrap_content,即包裹其自身内容。
  • android:numStars :设置星级评分条中星星的数量。默认为5个。如果设置的星星太多一行屏幕宽度无法显示就不显示。
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
  • android:rating :设置默认点亮几颗星。
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
  • android:stepSize :设置每次可选择几颗星。默认为0.5,即每次选择半颗星。
    如果不设置每次选择就是选择半颗星:
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
    stepSize设置为1:
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
  • android:isIndicator :设置为星星数不可更改,即星级评分条不可评分。
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
    点击星星不可选择或退选:
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
  1. 获取用户的选择结果(选中几颗星、每次可选几颗星、进度)
    首先给星级评分表定义一个id:
    Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
    在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();
            }
        });
    }
}

运行结果:
刚开始运行:
Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)
改变评分:
Android学习笔记(十四):高级UI组件----进度条类组件(星级评分条)

相关标签: Android