继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Android零基础入门第58节:数值选择器NumberPicker

波斯汪
关注TA
已关注
手记 364
粉丝 66
获赞 428

上一期学习了日期选择器DatePicker和时间选择器TimePicker,是不是感觉非常简单,本期继续来学习数值选择器NumberPicker 。

                                              

一、NumberPicker概述

    NumberPicker 是用于选择一组预定义好数字的组件,用户既可以通过键盘输入数值,也可以通过滚动来选择数值。

    NumberPicker的常用方法如下:

·         setMinValue(int minVal):设置该组件支持的最小值。

·         setMaxValue(int maxVal):设置该组件支持的最大值。

·         setValue(int value):设置该组件的当前值。

·         getMaxValue():获得该组件设置的最大值。

·         getMinValue():获得该组件设置的最小值。

·         getValue():获得当前组件显示的值。

·         setValue(int value):设置当前组件显示的值。

    使用NumberPicker一共有2个监听器和一个Formatter格式化处理器,

·         NumberPicker.OnValueChangeListener :用于监听当前value的变化。

·         NumberPicker.OnScrollListener:用于监听该控件的scroll状态。主要包括以下三种状态:

·         SCROLL_STATE_TOUCH_SCROLL:用户按下去然后滑动。

·         SCROLL_STATE_FLING: 相当于是SCROLL_STATE_TOUCH_SCROLL的后续滑动操作。

·         SCROLL_STATE_IDLE: NumberPicker不在滚动。

·         NumberPicker.Formatter: 用于格式化显示该组件中的value,如0—23格式化为00 — 23。

二、NumberPicker示例

    接下来通过一个简单的示例程序来学习NumberPicker的使用。

    继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建numberpicker_layout.xml文件,在其中填充如下代码片段:

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                android:layout_width="match_parent"

                android:layout_height="match_parent" >

 

    <NumberPicker

        android:id="@+id/numberPicker"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"/>

</RelativeLayout>

     新建NumberPickerActivity.java文件,加载上面新建的布局文件,初始化NumberPicker并获取用户的选择,具体代码如下:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

package com.jinyu.cqkxzsxy.android.advancedviewsample;

 

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.NumberPicker;

import android.widget.Toast;

 

/**

 * @创建者 鑫鱻

 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert

 */

public class NumberPickerActivity   extends AppCompatActivity   {

    private NumberPicker mNumberPicker = null; // 数值选择器

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.numberpicker_layout);

 

        //   获取NumberPicker组件

        mNumberPicker   = (NumberPicker) findViewById(R.id.numberPicker);

        //   设置NumberPicker属性

        mNumberPicker.setMinValue(1);

        mNumberPicker.setMaxValue(20);

        mNumberPicker.setValue(5);

 

        //   监听数值改变事件

        mNumberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {

            @Override

            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {

                Toast.makeText(NumberPickerActivity.this,   "选择的是:" + newVal,

                        Toast.LENGTH_SHORT).show();

            }

        });

    }

}

    上面程序代码为NumberPicker绑定事件监听器的代码,当用户通过这该组件来选择时间时,监听器就会被触发。

    运行程序,可以看到所示界面效果。

    除了Android系统定义的DatePicker、TimePicker和NumberPicker,在实际开发中往往不能满足,会经常自定义一些Picker组件,比如城市选择器、性别选择器、图片选择器、颜色选择器等。

    一般可以借用第三方组件来快速完成,当然也可以自定义实现,此处不做过多介绍,大家可以自己去研究,欢迎一起探讨。

    今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

原文链接:http://www.apkbus.com/blog-205190-72642.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP