Android UI控件学习(二)——星级评分条

Android UI控件学习(二)——星级评分条

  • 开篇自述
  • 正文——星级评价条
    • 实例
      • 项目结构
      • 具体代码参考
      • 运行效果
  • 结语

开篇自述

星级评分条与拖动条类似,都允许用户拖动来改变进度,所不同的是,星级评分条通过星星图案表示进度。通常情况下,使用星级评分条表示对某一事物的支持度或某种服务的满意程度等。
因为我上一篇拖动条已经详细介绍过了,这里就简单写了,如果有不懂的,可以先去看一下我上一篇拖动条的那篇文章。

正文——星级评价条

好了,话不多说,我觉得还是直接上例子比较直接。

实例

一样,贴上我的GitHub地址,有兴趣的朋友可以去下载,点这里

项目结构

这里就简单一点,Java文件
在这里插入图片描述
layout布局文件
在这里插入图片描述

具体代码参考

MainActivity主要代码

	/**
     * 处理监听事件
     */
    class onClickBtn implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
               	……
                case R.id.btn_rating_bar:
                    openAct(RatingBarActivity.class);//跳转到星级评分条页面
                    break;
            }
        }
    }

上一篇里面有介绍openAct()方法,在此就不做介绍了。

然后,在layout文件夹里创建一个activity_rating_bar.xml文件,代码如下




    
    

这里列一下RatingBar支持的XML属性

XML属性 描述
android:isIndicator 用于指定该星级评分条是否允许用户改变,true为不允许改变
android:numStars 用于指定该星级评分条总共有多少个星
android:rating 用于指定该星级评分条默认的星级
android:stepSize 用于指定每次最少需要改变多少个星级,默认为0.5个

然后,接下来就是创建java文件了,RatingBarActivity主要代码如下

public class RatingBarActivity extends Activity {

    private RatingBar ratingBar;
    private Button submitBtn;
    private TextView ratingBarText;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rating_bar);
        init();
    }

    private void init(){
        ratingBar = (RatingBar) findViewById(R.id.ratingBar);
        submitBtn = (Button) findViewById(R.id.ratingBar_btn);
        ratingBarText = (TextView) findViewById(R.id.ratingBar_tv);
        // 给按钮添加监听
        submitBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int result = ratingBar.getProgress();//获取进度
                float rating = ratingBar.getRating();//获取等级
                float step = ratingBar.getStepSize();//获取每次要改变多少个星级
                ratingBarText.setText("当前分数:"+rating+"\n进度:"+result+"\n等级:"+rating+"\n每次改变:"+step+"个星级");
            }
        });
    }
}

这里用到三个方法

方法名 描述
getRating() 用于获取等级,表示选中了几颗星
getStepSize() 用于获取每次最少要改变多少个星级
getProgress() 用于获取进度,进度值为getRating()返回值与getStepSize()返回值之商

到此,主要代码就基本完成了,接下来让我们把新建的activity加到AndroidManifest.xml中

		

这里再贴上string.xml文件中用到的常量

    星级评分条
    提交

好了,大功告成。

运行效果

现在,让我们来看一下运行效果怎么样,
首先是刚进来的页面
Android UI控件学习(二)——星级评分条_第1张图片
现在,让我们滑动改变一下看看,当我们改变之后,然后点击提交,可以看到下面会给出消息信息。
Android UI控件学习(二)——星级评分条_第2张图片

结语

到这里,我们的程序就结束了,你也成功了吗,你也可以试着添加一些其他功能,比如单击完提交,用户就不可以再对星级进行修改,等等。

马上过年了,好开心,也祝大家春节快乐,今天回家,嘻嘻……^ U ^……开森,今年的最后一篇博客,也希望明年能变得更好,变得更厉害,早日成为一个大神,你们也是哦,一起加油。

你可能感兴趣的:(UI控件学习)