我的解决方法是继承android TimePicker 类

修改其构造函数

  public TimePicker(Context context, AttributeSet attrs, int defStyle) {// minute 的部分        mMinuteSpinner = (NumberPicker) findViewById(R.id.minute);        mMinuteSpinner.setMinValue(0);        mMinuteSpinner.setMaxValue(3);        mMinuteSpinner.setDisplayedValues(new String[]{"0", "15", "30", "45"});        mMinuteSpinner.setOnLongPressUpdateInterval(100);}

网络上的其他主流方法是:

这种方法的缺点在于其前后几个值不正确。具体可以自己写个试试

The following worked for me.

First, in onCreate:

pickStartTime = (TimePicker)findViewById(R.id.StartTime); pickStartTime.setOnTimeChangedListener(mStartTimeChangedListener);

Set the OnTimeChangedListener:

private TimePicker.OnTimeChangedListener mStartTimeChangedListener = new TimePicker.OnTimeChangedListener() { public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { updateDisplay(view, startDate, hourOfDay, minute); } };

Null OnTimeChangedListener (explained in comments in updateDisplay below):

private TimePicker.OnTimeChangedListener mNullTimeChangedListener = new TimePicker.OnTimeChangedListener() { public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { } }; private void updateDisplay(TimePicker timePicker, Date date, int hourOfDay, int minute) { // do calculation of next time  int nextMinute = 0; if (minute >= 45 && minute <= 59) nextMinute = 45; else if(minute >= 30) nextMinute = 30; else if(minute >= 15) nextMinute = 15; else if(minute > 0) nextMinute = 0; else { nextMinute = 45; } // remove ontimechangedlistener to prevent stackoverflow/infinite loop timePicker.setOnTimeChangedListener(mNullTimeChangedListener); // set minute timePicker.setCurrentMinute(nextMinute); // hook up ontimechangedlistener again timePicker.setOnTimeChangedListener(mStartTimeChangedListener); // update the date variable for use elsewhere in code date.setMinutes(nextMinute); }

更多相关文章

  1. Android学习(十) SQLite 基于内置函数的操作方式
  2. android的webview调用javascript函数并得到返回值
  3. Android 数据查询query函数参数解析
  4. android 4.0横屏重复调用onCreate()函数
  5. Android利用系统提供的函数或常量判断版本大小
  6. 使用Kotlin开发Android 扩展函数(Extensions)
  7. android调用高版本api函数的兼容性问题
  8. Android O system函数执行reboot命令失败
  9. Android下使用dlopen函数动态调用.so链接库 [转]

随机推荐

  1. Android(一)Android Eclipse环境搭建
  2. Android_RelativeLayout属性大全
  3. Error:(1, 0) The android gradle plugin
  4. 使用AudioTrack播放PCM音频数据(android)
  5. android 过渡动画研究
  6. Android SAX 解析XML的Demo
  7. android sqlite 数据类型
  8. android 树形目录
  9. 下载Android SDK tools完成Android SDK
  10. Android小项目之 where are you 监控