数值选择器(NumberPicker)的功能与用法
数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值。使用该组件常用如下三个方法。
- setMinValue(int minVal):设置该组件支持的最小值。
- setMaxValue(int maxVal):设置该组件支持的最大值。
- setValue(int value):设置该组件的当前值。
下面通过一个实例来介绍NumberPicker的功能与用法。
实例:选择您意向的价格范围
在该实例中,程序将使用两个NumberPicker来让用户选择价格,第一个NumberPicker用于选择低价,第二个NumberPicker用于选择高价。下面是该实例的布局文件。
布局文件如下:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView android:text="选择低价:"
android:layout_width="120dp"
android:layout_height="wrap_content"/>
<NumberPicker android:id="@+id/np1"
android:layout_width="match_parent"
android:layout_height="80dp"
android:focusable="true"
android:focusableInTouchMode="true"/>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:text="选择高价:"
android:layout_width="120dp"
android:layout_height="wrap_content"/>
<NumberPicker android:id="@+id/np2"
android:layout_width="match_parent"
android:layout_height="80dp"
android:focusable="true"
android:focusableInTouchMode="true"/>
</TableRow>
</TableLayout>
上面的布局文件中定义了两个NumberPicker,接下来Activity代码需要为这两个NumberPicker设置最小值、最大值,并为他们绑定事件监听器。下面是该Activity的后台代码。
package org.crazyit.helloworld; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.Toast; public class NumberPickerTest extends Activity { NumberPicker np1,np2;
//定义最低价格、最高价格的初始值
int minPrice=25,maxPrice=75;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.number_picker_test);
np1=(NumberPicker)findViewById(R.id.np1);
//设置np1的最小值和最大值
np1.setMinValue(10);
np1.setMaxValue(50);
//设置np1的当前值
np1.setValue(minPrice);
np1.setOnValueChangedListener(new OnValueChangeListener(){
@Override
public void onValueChange(NumberPicker picker, int oldVal,
int newVal) {
// TODO Auto-generated method stub
minPrice=newVal;
showSelectedPrice();
} });
np2=(NumberPicker)findViewById(R.id.np2);
//设置np2的最小值和最大值
np2.setMinValue(60);
np2.setMaxValue(100);
//设置np2的当前值
np2.setValue(maxPrice);
np2.setOnValueChangedListener(new OnValueChangeListener(){ @Override
public void onValueChange(NumberPicker picker, int oldVal,
int newVal) {
// TODO Auto-generated method stub
maxPrice=newVal;
showSelectedPrice();
} }); } private void showSelectedPrice()
{
Toast.makeText(this, "您选择的价格为:"+minPrice+",最高价格为:"+maxPrice
, Toast.LENGTH_SHORT).show();
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.number_picker_test, menu);
return true;
} }
上面两段粗体字代码的控制逻辑基本是相似的,它们都调用了NumberPicker的setMinValue()、setMaxValue()来设置该数值选择器的最小值、最大值和当前值。除此之外,程序还为两个日期选择器绑定了事件监听器:当它们的值发生改变时,将会激发相应的事件处理方法。
运行该程序,并通过NumberPicker选择数值,将可以看到如下效果:

数值选择器(NumberPicker)的功能与用法的更多相关文章
- Android零基础入门第58节:数值选择器NumberPicker
原文:Android零基础入门第58节:数值选择器NumberPicker 上一期学习了日期选择器DatePicker和时间选择器TimePicker,是不是感觉非常简单,本期继续来学习数值选择器Nu ...
- 拖动条(SeekBar)的功能和用法
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程序,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因而拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- Python常用模块sys,os,time,random功能与用法,新手备学。
这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...
- Android 自学之画廊视图(Gallery)功能和用法
Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...
- 搜索框(SearchView)的功能与用法
SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索. 使用SearchView时可以使用如下 ...
- 日历视图(CalendarView)组件的功能和用法
日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触摸来滚动日历.如果希望监控该组件的日历改变,可调用CalendarView的setOnDateChangeLi ...
- 星级评分条(RatingBar)的功能和用法
星级评分条与拖动条有相同的父类:AbsSeekBar,因此它们十分相似.实际上星级评分条与拖动条的用法.功能都十分接近:它们都是允许用户通过拖动条来改变进度.RatingBar与SeekBar最大区别 ...
- StackView的功能和用法
StackView也是AdapterViewAnimator的子类,它也用于显示Adapter提供的系列View.SackView将会以“堆叠(Stack)”方式来显示多个列表项. 为了控制Stack ...
- Android数字选择器-NumberPicker
数字选择器NumberPicker是Android3.0之后引入的一个控件,比较常用,比如说手机常用的闹钟,可以选择小时和分钟,如果你需要兼容3.0之前版本,GitHub上有开源的项目,具体的下载地址 ...
随机推荐
- FZU 2122 又见LKity(KMP+返回所有匹配位置)
基础kmp应用,找到所有匹配位置即可 #include<stdio.h> #include<string.h> #include<algorithm> #inclu ...
- UML关系总结
用例图: 1.扩展关系:如果已有一个用例,在这个用例的基础(该用例是完整的)上加入新的动作形成了另一个用例,即后者是通过继承前者的属性并加入新的内容而来的,则前者通常称为通用化用例,后者常为扩展用例. ...
- CDOJ UESTC 1220 The Battle of Guandu
The 2015 China Collegiate Programming Contest 2015第一届中国大学生程序设计竞赛 F题 本质就是求单源最短路!注意会爆int 对于每一个村庄i,其实就是 ...
- HDU 5522 Numbers
水题 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...
- iis8.0配置 使用备忘 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
由于对iis的了解度不够,使用中总会碰到这样那样的问题,在这我先开个头,遇到问题再一一更新: 我用的是iis8; 1.发布到iis服务器下的网站你自己可以访问,局域网的其他机器不能? 答:是否开放了对 ...
- 之一 select模型
// select.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <WinSock2.h> #include ...
- 数据结构录 之 单调队列&单调栈。
队列和栈是很常见的应用,大部分算法中都能见到他们的影子. 而单纯的队列和栈经常不能满足需求,所以需要一些很神奇的队列和栈的扩展. 其中最出名的应该是优先队列吧我觉得,然后还有两种比较小众的扩展就是单调 ...
- Django之路:模型(数据库)和自定义Field以及数据表的更改
一.Django 模型(数据库) Django模型是与数据库相关的,与数据库相关的代码一般写在models.py中,Django支持sqlite3,MySQL,PostgreSQL等数据库,只需要在s ...
- Lambda应用设计模式 [转载]
Lambda应用设计模式 前言 在使用 Lambda 表达式时,我们常会碰到一些典型的应用场景,而从常用场景中抽取出来的应用方式可以描述为应用模式.这些模式可能不全是新的模式,有的参考自 Java ...
- webpack.config.js 参数简单了解
webpack.config.js文件通常放在项目的根目录中,它本身也是一个标准的Commonjs规范的模块. var webpack = require('webpack'); module.exp ...