numberpicker样式的setOnValueChangedListener方法

关于NumberPicker的一些操作 - 推酷
关于NumberPicker的一些操作
public class MinutePickerDialog extends AlertDialog implements android.content.DialogInterface.OnClickListener {
private OnMinuteSelectedListener mL
private NumberPicker mMinuteP
public MinutePickerDialog(final Context context, OnMinuteSelectedListener callback) {
super(context);
mListener =
setIcon(0);
Context themeContext = getContext();
setButton(BUTTON_NEGATIVE, themeContext.getText(R.string.vibrate_minute_negative), this);
setButton(BUTTON_POSITIVE, themeContext.getText(R.string.vibrate_minute_positive), this);
mMinutePicker = new NumberPicker(context);
mMinutePicker.setMinValue(0);
mMinutePicker.setMaxValue(4);
final String[] minutes = context.getResources().getStringArray(R.array.minute);
setTitle(context.getString(R.string.vibrate_minute_title, minutes[0]));
mMinutePicker.setDisplayedValues(minutes);
mMinutePicker.setOnValueChangedListener(new OnValueChangeListener() {
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
setTitle(context.getString(R.string.vibrate_minute_title, minutes[newVal]));
LinearLayout layout = new LinearLayout(context);
layout.setGravity(Gravity.CENTER);
layout.addView(mMinutePicker, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
setView(layout);
setCanceledOnTouchOutside(true);
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE:
if (mListener != null) {
mMinutePicker.clearFocus();
mListener.onMinuteSelected(mMinutePicker, Integer.parseInt(mMinutePicker.getDisplayedValues()[mMinutePicker.getValue()]));
* The callback interface used to indicate the user is done filling in the
* time (they clicked on the 'Set' button).
public interface OnMinuteSelectedListener {
* @param view
The view associated with this listener.
* @param minute
The minute that was set.
void onMinuteSelected(NumberPicker view, int minute);
new MinutePickerDialog(getActivity(), new OnMinuteSelectedListener() {
public void onMinuteSelected(NumberPicker view, int minute) {
tvThreshold.setText(getString(R.string.vibrate_minute_title, minute));
}).show();
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
android3.0新特性UI
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口下次自动登录
关注移动互联网和移动APP开发工具、开发框架、测试工具、微信开发、Android源码、Android开源类库以及各种开源组件的IT科技网站
现在的位置:
Android:Picker(DatePicker、TimerPicker、NumberPicker)
一. DatePicker
DatePicker常用的XML属性
android:calendarViewShown
设置该日期选择是否显示CalendarView组件。
android:endYear
设置日期选择器允许选择的最后一年。
android:maxDate
设置该日期选择器的最大日期。以mm/dd/yyyy格式指定最大日期。
android:minDate
设置该日期选择器的最小日期。以mm/dd/yyyy格式指定最小日期。
android:spinnersShown
设置该日期选择器是否显示Spinner日期选择组件。
android:startYear
设置日期选择器允许选择的第一年。
具体API可参考官方网站:
当用户更改了DatePicker里的年、月、日时,将触发OnDateChangedListener监听器的onDateChange()事件。
activity_main.xml中:
&DatePicker
android:id="@+id/myDatePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:startYear="2015"
android:endYear="2020"
android:calendarViewShown="true"
android:spinnersShown="true" /&
MainActivity.java中:
private DatePicker dateP
// 获取日历对象
calendar = Calendar.getInstance();
// 获取当前对应的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// dataPicker初始化
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
效果图如下:
二. TimerPicker
当用户更改了TimePicker里的时、分时,将触发OnTimeChangedListener监听器的onTimeChanged事件。
activity_main.xml中:
&TimePicker
android:id="@+id/myTimePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" /&
MainActivity.java中:
private TimePicker timeP
// 获取日历对象
calendar = Calendar.getInstance();
// 获取对应的时、分的信息
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
timePicker = (TimePicker) findViewById(R.id.myTimePicker);
// 为TimePicker指定监听器
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + "-" + minute);
效果图如下:
三. DatePickerDialog
DatePickerDialog和TimePickerDialog,与DatePicker和TimePicker,最大的区别是DatePicker和TimePicker是直接显示在屏幕画面上的,而DatePickerDialog和TimePickerDialog对象则是以弹出Dialog的方式来显示。
创建DatePickerDialog的语法如下:
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
参数说明:
context:当前上下文;
callback:OnDateSetListener日期改变监听器;
year:初始化的年;
monthOfYear:初始化的月(从0开始计数,所以实际应用时需要加1);
dayOfMonth:初始化的日;
当用户更改了DatePickerDialog里的年、月、日时,将触发OnDateSetListener监听器的onDateSet()事件。
// 获取日历对象
calendar = Calendar.getInstance();
// 获取当前对应的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// 初始化DatePickerDialog
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}, year, month, day).show();
四. TimePickerDialog
创建TimePickerDialog的语法如下:
TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView)
参数说明:
context:当前上下文;
listener:时间改变监听器;
hourOfDay:初始化的小时;
minute:初始化的分钟;
is24HourView:是否以24小时显示时间;
当用户更改了TimePickerDialog里的时、分时,将触发OnTimeSetListener监听器的onTimeSet()事件。
// 获取日历对象
calendar = Calendar.getInstance();
// 获取当前对应的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// 初始化TimerPickerDialog
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + ":" + minute);
}, hour, minute, true).show();
五. NumberPicker
NumberPicker是数值选择器,用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值。
NumberPicker的常用方法如下:
setMinValue(int minVal)
设置该组件支持的最小值。
setMaxValue(int maxVal)
设置该组件支持的最大值。
setValue(int value)
设置该组件的当前值。
getMaxValue()
获得该组件设置的最大值。
getMinValue()
获得该组件设置的最小值。
getValue()
获得当前组件显示的值。
setValue(int value)
设置当前组件显示的值。
activity_main.xml中:
&NumberPicker
android:id="@+id/numberPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/&
android:id="@+id/currentNumShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textSize="30dp" /&
MainActivity.java中:
private NumberPicker numberP
private TextView currentNumS
private int minNum = 1, maxNum = 20, currentNum = 10;
// 更新显示当前值的TextView
private void showCurrentNum() {
currentNumShow.setText("Current Number is " + currentNum + ".");
numberPicker = (NumberPicker) findViewById(R.id.numberPicker);
currentNumShow = (TextView) findViewById(R.id.currentNumShow);
// 设置NumberPicker属性
numberPicker.setMinValue(minNum);
numberPicker.setMaxValue(maxNum);
numberPicker.setValue(currentNum);
// 监听数值改变事件
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
currentNum = newV
// 在TextView中更新数据
showCurrentNum();
效果图如下:
【上篇】【下篇】Android日期对话框NumberPicker的用法教程
NumberPicker是3.0之后引入的一个控件,NumberPicker 是用于选择一组预定义好数字的控件。比如时间hour的选择只有0&23有效,则可以通过setMinValue和setMaxValue设定。
使用该控件时需注意他的两个listener和一个formatter:一个listener用于监听当前value的变化;一个listener用于监听该控件的scroll状态;formatter用于格式化显示该控件中的value。下面逐一介绍这几个接口:
1、NumberPicker.OnValueChangeListener :其函数public void onValueChange(NumberPicker picker, int oldVal, int newVal) ;oldVal前一个选中的值,newValue当前选中的值。
2、NumberPicker.OnScrollListener:其内部有三种scroll状态SCROLL_STATE_FLING 、 SCROLL_STATE_IDLE 、 SCROLL_STATE_TOUCH_SCROLL。
SCROLL_STATE_TOUCH_SCROLL:用户按下去然后滑动。
SCROLL_STATE_FLING: 相当于是SCROLL_STATE_TOUCH_SCROLL的后续滑动操作。
SCROLL_STATE_IDLE: NumberPicker不在滚动。
3、NumberPicker.Formatter: 格式化显示数字,例如0&23格式化为00 & 23 。具体的格式在format函数中规定,如下所示:
public String format(int value) {
String Str = String.valueOf(value);
if (value & 10) {
Str = &0& + S
value值在0&23之间,小于10的数在前面加上&0&。
介绍完NumberPicker后,就要实现我们今天的功能,首先先看效果图,如下所示:
是不是非常漂亮那,这样以后我们的项目中需要这种效果,就直接就可以拿来用了。要实现这种效果当然要先看我们的布局了,其实布局里面就三个NumberPicker如下所示:
就是这三个NumberPicker布局出我们刚才的效果,布局完成我们就要找到这些控件,给他们加上监听,来实现一些功能,这里面是自定义FrameLayout在直接填充布局做的。让我们来看看,如下所示:
package com.zqy.datetimepicker.
import java.util.C
import com.zqy.datetimepicker.R;
import android.content.C
import android.text.format.DateF
import android.widget.FrameL
import android.widget.NumberP
import android.widget.NumberPicker.OnValueChangeL
public class DateTimePicker extends FrameLayout {
private final NumberPicker mDateS
private final NumberPicker mHourS
private final NumberPicker mMinuteS
private Calendar mD
private int mHour, mM
private String[] mDateDisplayValues = new String[7];
private OnDateTimeChangedListener mOnDateTimeChangedL
public DateTimePicker(Context context) {
super(context);
mDate = Calendar.getInstance();
mHour = mDate.get(Calendar.HOUR_OF_DAY);
mMinute = mDate.get(Calendar.MINUTE);
* 加载布局
inflate(context, R.layout.datedialog, this);
* 初始化控件
mDateSpinner = (NumberPicker) this.findViewById(R.id.np_date);
mDateSpinner.setMinValue(0);
mDateSpinner.setMaxValue(6);
updateDateControl();
mDateSpinner.setOnValueChangedListener(mOnDateChangedListener);
mHourSpinner = (NumberPicker) this.findViewById(R.id.np_hour);
mHourSpinner.setMaxValue(23);
mHourSpinner.setMinValue(0);
mHourSpinner.setValue(mHour);
mHourSpinner.setOnValueChangedListener(mOnHourChangedListener);
mMinuteSpinner = (NumberPicker) this.findViewById(R.id.np_minute);
mMinuteSpinner.setMaxValue(59);
mMinuteSpinner.setMinValue(0);
mMinuteSpinner.setValue(mMinute);
mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener);
* 控件监听器
private NumberPicker.OnValueChangeListener mOnDateChangedListener = new OnValueChangeListener() {
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mDate.add(Calendar.DAY_OF_MONTH, newVal - oldVal);
* 更新日期
updateDateControl();
* 给接口传值
onDateTimeChanged();
private NumberPicker.OnValueChangeListener mOnHourChangedListener = new OnValueChangeListener() {
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mHour = mHourSpinner.getValue();
onDateTimeChanged();
private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new OnValueChangeListener() {
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mMinute = mMinuteSpinner.getValue();
onDateTimeChanged();
private void updateDateControl() {
* 星期几算法
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(mDate.getTimeInMillis());
cal.add(Calendar.DAY_OF_YEAR, -7 / 2 - 1);
mDateSpinner.setDisplayedValues(null);
for (int i = 0; i & 7; ++i) {
cal.add(Calendar.DAY_OF_YEAR, 1);
mDateDisplayValues[i] = (String) DateFormat.format(&MM.dd EEEE&,
mDateSpinner.setDisplayedValues(mDateDisplayValues);
mDateSpinner.setValue(7 / 2);
mDateSpinner.invalidate();
*接口回调 参数是当前的View 年月日小时分钟
public interface OnDateTimeChangedListener {
void onDateTimeChanged(DateTimePicker view, int year, int month,
int day, int hour, int minute);
*对外的公开方法
public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) {
mOnDateTimeChangedListener =
private void onDateTimeChanged() {
if (mOnDateTimeChangedListener != null) {
mOnDateTimeChangedListener.onDateTimeChanged(this,mDate.get(Calendar.YEAR), mDate.get(Calendar.MONTH),
mDate.get(Calendar.DAY_OF_MONTH), mHour, mMinute);
这段代码就是找到这三个控件,分别给他们setMinValue(),setMaxValue(),也就是最大值和最小值,设置完成后,我们给他们三个分别加上监听setOnValueChangedListener下面有三个监听方法,在mOnDateChangedListener这个方法了多了一个updateDateControl()方法,这个updateDateControl()方法里面主要是月份和星期几的关系算法,
写完这些,值也拿到了,但是我们需要把值传出去,下面我们又定义了一个接口来实现回调.接下来让我们在来看看对话框这个类,如下所示:
package com.zqy.datetimepicker.
import java.util.C
import com.zqy.datetimepicker.datedialog.DateTimePicker.OnDateTimeChangedL
import android.app.AlertD
import android.content.C
import android.content.DialogI
import android.content.DialogInterface.OnClickL
import android.text.format.DateU
public class DateTimePickerDialog extends AlertDialog implements
OnClickListener {
private DateTimePicker mDateTimeP
private Calendar mDate = Calendar.getInstance();
private OnDateTimeSetListener mOnDateTimeSetL
@SuppressWarnings(&deprecation&)
public DateTimePickerDialog(Context context, long date) {
super(context);
mDateTimePicker = new DateTimePicker(context);
setView(mDateTimePicker);
*实现接口,实现里面的方法
mDateTimePicker
.setOnDateTimeChangedListener(new OnDateTimeChangedListener() {
public void onDateTimeChanged(DateTimePicker view,
int year, int month, int day, int hour, int minute) {
mDate.set(Calendar.YEAR, year);
mDate.set(Calendar.MONTH, month);
mDate.set(Calendar.DAY_OF_MONTH, day);
mDate.set(Calendar.HOUR_OF_DAY, hour);
mDate.set(Calendar.MINUTE, minute);
mDate.set(Calendar.SECOND, 0);
* 更新日期
updateTitle(mDate.getTimeInMillis());
setButton(&设置&, this);
setButton2(&取消&, (OnClickListener) null);
mDate.setTimeInMillis(date);
updateTitle(mDate.getTimeInMillis());
*控件 秒数
public interface OnDateTimeSetListener {
void OnDateTimeSet(AlertDialog dialog, long date);
* 更新对话框日期
* @param date
private void updateTitle(long date) {
int flag = DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_TIME;
setTitle(DateUtils.formatDateTime(this.getContext(), date, flag));
* 对外公开方法让Activity实现
public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) {
mOnDateTimeSetListener = callB
public void onClick(DialogInterface arg0, int arg1) {
if (mOnDateTimeSetListener != null) {
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
我们一行一行看,首先我们是继承AlertDialog,在下面我们new DateTimePicker,这个就是刚才写的类,我们这个类的对象实现我们刚才写的接口,把里面的值取到,虽然取到了,但是我们也不是在这里显示,所以我们还需要定义接口,让DateTimePickerDialog的对象去实现,下面就是我们的写的接口,我们写了那么多,只为MainActivity里面的几行代码,让我们看看,如下所示:
package com.zqy.datetimepicker.
import java.text.SimpleDateF
import com.zqy.datetimepicker.R;
import com.zqy.datetimepicker.datedialog.DateTimePickerD
import com.zqy.datetimepicker.datedialog.DateTimePickerDialog.OnDateTimeSetL
import android.app.A
import android.app.AlertD
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) this.findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog();
public void showDialog() {
DateTimePickerDialog dialog = new DateTimePickerDialog(this,
System.currentTimeMillis());
* 实现接口
dialog.setOnDateTimeSetListener(new OnDateTimeSetListener() {
public void OnDateTimeSet(AlertDialog dialog, long date) {
Toast.makeText(MainActivity.this,
&您输入的日期是:& + getStringDate(date), Toast.LENGTH_LONG)
dialog.show();
* 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
public static String getStringDate(Long date) {
SimpleDateFormat formatter = new SimpleDateFormat(&yyyy-MM-dd HH:mm:ss&);
String dateString = formatter.format(date);
return dateS
首先我们还是new DateTimePickerDialog这个类,我们把时间传过去,这样时间对话框显示的就是系统时间了,我们用这个类的对象去实现我们刚才写的接口,实现里面的方法,我们又定义了一个 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss的方法,这样我用一个Toast把接口里面的值弹出来。OK,这样我们就实现完成了,有什么不明白的可以在下面留言。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'Android数字选择器-NumberPicker
Android数字选择器-NumberPicker
数字选择器NumberPicker是Android3.0之后引入的一个控件,比较常用,比如说手机常用的闹钟,可以选择小时和分钟,如果你需要兼容3.0之前版本,GitHub上有开源的项目,具体的下载地址/SimonVT/android-numberpicker。本人就没有使用开源的项目,就简单的使用了NumberPicker显示一下效果,开始正题吧:
开发东西先看下效果吧:
NumberPicker和TextView显示一下时间,线性布局,看下布局文件吧:
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="com.example.googlenumberpicker.MainActivity" &
&LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginLeft="50dp"
android:layout_gravity="center_horizontal" &
&NumberPicker
android:id="@+id/hourpicker"
android:layout_width="40dp"
android:layout_height="wrap_content" /&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="时" /&
&NumberPicker
android:id="@+id/minuteicker"
android:layout_width="40dp"
android:layout_height="wrap_content" /&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="分" /&
&/LinearLayout&
&/LinearLayout&
 Demo实现
数字选择是可以滑动,所以需要定义一个OnValueChangeListener事件,OnScrollListener滑动事件,Formatter事件:
Formatter事件:
public String format(int value) {
String tmpStr = String.valueOf(value);
if (value & 10) {
tmpStr = "0" + tmpS
return tmpS
&OnValueChangeListener事件:
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
Toast.makeText(
"原来的值 " + oldVal + "--新值: "
+ newVal, Toast.LENGTH_SHORT).show();
OnScrollListener滑动事件,滑动事件有三个状态:
SCROLL_STATE_FLING:手离开之后还在滑动
SCROLL_STATE_IDLE:不滑动
SCROLL_STATE_TOUCH_SCROLL:滑动中
public void onScrollStateChange(NumberPicker view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_FLING:
Toast.makeText(this, "后续滑动(飞呀飞,根本停下来)", Toast.LENGTH_LONG)
case OnScrollListener.SCROLL_STATE_IDLE:
Toast.makeText(this, "不滑动", Toast.LENGTH_LONG).show();
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
Toast.makeText(this, "滑动中", Toast.LENGTH_LONG)
hourPicker=(NumberPicker) findViewById(R.id.hourpicker);
minutePicker=(NumberPicker) findViewById(R.id.minuteicker);
 init方法中,设置数字的最大值,最小值,以及滑动事件:
private void init() {
hourPicker.setFormatter(this);
hourPicker.setOnValueChangedListener(this);
hourPicker.setOnScrollListener(this);
hourPicker.setMaxValue(24);
hourPicker.setMinValue(0);
hourPicker.setValue(9);
minutePicker.setFormatter(this);
minutePicker.setOnValueChangedListener(this);
minutePicker.setOnScrollListener(this);
minutePicker.setMaxValue(60);
minutePicker.setMinValue(0);
minutePicker.setValue(49);
  还差一步,Activity需要继承一下OnValueChangeListener,OnScrollListener,Formatter:
public class MainActivity extends Activity implements OnValueChangeListener,OnScrollListener,Formatter{...}
 最后说一点就是NumberPicker也是可以显示文字的,重新定义一个NumberPicker,加载一下:
valuepicker = (NumberPicker) findViewById(R.id.valuepicker);
String[] city = {"立水桥","霍营","回龙观","龙泽","西二旗","上地"};
valuepicker.setDisplayedValues(city);
valuepicker.setMinValue(0);
valuepicker.setMaxValue(city.length - 1);
valuepicker.setValue(4);
  最后显示的效果:
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。}

我要回帖

更多关于 numberpicker样式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信