Android之TimePickerDialog使用
2017-07-19 14:14
316 查看
目前项目中要实现一个时间滚动选择的需求,暂时只实现滚动选择时间,日期暂时不需要实现。具体实现效果如下:
好了,效果就是这样。接下来我们直接撸代码,代码很简单。我们首先来看布局文件:
我这里是一个TextView,用来显示时间。再来看具体实现代码:
好了,这样我们在点击TextView选择时间时,就会弹出Dialog滚动选择时间。但是有一个问题,如果我们的手机是Android 5.0以上。这时TimePickerDialog会在手机上显示为一个圆形的钟表,并不是我们想要实现的滚动效果。
具体效果:
这是为什么呢?具体原因可以去查看源码,我们先说一下如何解决这个问题。先来看一下TimePickerDialog的语法:
创建:
参数:
context:当前上下文
listener:时间改变监听器
hourOfDay:初始化的小时
minute:初始化的分钟
is24HourView:是否以24小时显示时间
了解了TimePickerDialog的语法,怎么来实现滚动的效果呢?查了下TimePickerDialog有一个参数,AlertDialog.THEME_HOLO_LIGHT可以改变TimePickerDialog在Android 5.0以上无法显示滚动效果的问题,正常显示出滚动时间的效果。具体代码如下:
好了,这是在使用TimePickerDialog时遇到的问题。时间滚动的效果也有其他的实现方法,并不是非要选择TimePickerDialog,要注意TimePickerDialog在5.0以上和5.0以下显示效果不同的问题、
好了,效果就是这样。接下来我们直接撸代码,代码很简单。我们首先来看布局文件:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_end_time" android:hint="8:00" android:textSize="16sp" android:layout_marginLeft="160dp" />
我这里是一个TextView,用来显示时间。再来看具体实现代码:
new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { houre = hourOfDay; WuraoActivity.this.minute = minute; if (WuraoActivity.this.minute < 10){ endTimeTv.setText(houre+":"+"0"+WuraoActivity.this.minute); }else { endTimeTv.setText(houre+":"+WuraoActivity.this.minute); } } }, 0, 0, true).show();
好了,这样我们在点击TextView选择时间时,就会弹出Dialog滚动选择时间。但是有一个问题,如果我们的手机是Android 5.0以上。这时TimePickerDialog会在手机上显示为一个圆形的钟表,并不是我们想要实现的滚动效果。
具体效果:
这是为什么呢?具体原因可以去查看源码,我们先说一下如何解决这个问题。先来看一下TimePickerDialog的语法:
创建:
TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView)
参数:
context:当前上下文
listener:时间改变监听器
hourOfDay:初始化的小时
minute:初始化的分钟
is24HourView:是否以24小时显示时间
了解了TimePickerDialog的语法,怎么来实现滚动的效果呢?查了下TimePickerDialog有一个参数,AlertDialog.THEME_HOLO_LIGHT可以改变TimePickerDialog在Android 5.0以上无法显示滚动效果的问题,正常显示出滚动时间的效果。具体代码如下:
new TimePickerDialog(this,AlertDialog.THEME_HOLO_LIGHT,new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { houre = hourOfDay; WuraoActivity.this.minute = minute; if (WuraoActivity.this.minute < 10){ endTimeTv.setText(houre+":"+"0"+WuraoActivity.this.minute); }else { endTimeTv.setText(houre+":"+WuraoActivity.this.minute); } } }, 0, 0, true).show();
好了,这是在使用TimePickerDialog时遇到的问题。时间滚动的效果也有其他的实现方法,并不是非要选择TimePickerDialog,要注意TimePickerDialog在5.0以上和5.0以下显示效果不同的问题、
相关文章推荐
- android—DatePicker 和TimePicker显示日期以及使用TimePickerDialog,DatePickerDialog来专门实现时间选择对话框
- Android中DatePickerDialog对话框和TimePickerDialog对话框的使用
- android开发之DatePickerDialog与TimePickerDialog的使用
- Android中关于DatePickerDialog与TimePickerDialog的结合使用
- Android的日期DatePickerDialog和时间TimePickerDialog简单使用
- android 时间日期控件的使用(DatePicker、TimePicker、DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock)
- Android 日期控件(DatePickerDialog)与时间控件(TimePickerDialog)的使用
- android学习--DatePickerDialog和TimePickerDialog的使用
- Android中TimePickerDialog的使用
- Android中TimePickerDialog的使用
- AndroidUI基础之 TimePickerDialog与 Timpicker 等简单的使用
- android DatePickerDialog TimePickerDialog set方法执行的不规律解决以及 DatePicker TimePicker的使用
- Android中DatePickerDialog对话框和TimePickerDialog对话框的使用
- Android中关于DatePickerDialog与TimePickerDialog的结合使用
- 【转】Android中关于DatePickerDialog与TimePickerDialog的结合使用
- Android开发小知识-TimePickerDialog和DatePickerDialog的使用
- Android_使用DatePickerDialog和TimePickerDialog
- 【Android 开发】:UI控件之 TimePickerDialog 时间对话框的使用
- Android开发之DatePickerDialog与TimePickerDialog的功能和使用方法具体解释
- Android之TimePicker和TimePickerDialog