android 滚动时间选择器
2016-04-26 16:46
911 查看
一.概述滚动时间选择现在貌似很常用,所以就总结一下,显示效果一般般 , 做个参考吧!以上就是效果图,可以滚动选择 日期时间, 由于是在 5.0系统运行的,貌似5.0系统做了什么变动,下面的 "取消","确定" 默认不会居中显示,我也不知道怎么才能让它居中显示, 但是在5.0以下系统运行 默认是居中显示的.二.布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dip" > <TimePicker android:timePickerMode="spinner" android:id="@+id/time_picker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dip" android:layout_gravity="center" > </TimePicker> </LinearLayout>以上是 时间选择的布局文件,很简单,但是需要注意一点
android:timePickerMode="spinner" 如果不加这句话, 在5.0以下系统运行完全没有任何问题,但是在5.0以上系统运行发现时间布局变成了一个圆形的钟表,所以如果不想显示钟表,就需要加这句话!
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dip" > <DatePicker android:datePickerMode="spinner" android:calendarViewShown="false" android:id="@+id/date_picker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dip" android:layout_gravity="center" > </DatePicker> </LinearLayout>以上是日期选择布局, 同样
android:datePickerMode="spinner" android:calendarViewShown="false" 这2句话是为了避免5.0以上系统运行出现"日历样式", 如果去掉这2句话 ,就会变成一个 日历样式, 5.0以下系统可以去掉/保留这2句话 三.源码部分
public void setTime(){ //点击"时间"按钮布局 设置时间 oplantime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //自定义控件 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); View view = (LinearLayout) getLayoutInflater().inflate(R.layout.time_dialog, null); final TimePicker timePicker = (TimePicker) view.findViewById(R.id.time_picker); //初始化时间 calendar.setTimeInMillis(System.currentTimeMillis()); timePicker.setIs24HourView(true); timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY)); timePicker.setCurrentMinute(Calendar.MINUTE); //设置time布局 builder.setView(view); builder.setTitle("设置时间信息"); builder.setPositiveButton("确 定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mHour = timePicker.getCurrentHour(); mMinute = timePicker.getCurrentMinute(); //时间小于10的数字 前面补0 如01:12:00 oplantime.setText(new StringBuilder().append(mHour < 10 ? "0" + mHour : mHour).append(":") .append(mMinute < 10 ? "0" + mMinute : mMinute).append(":00") ); dialog.cancel(); } }); builder.setNegativeButton("取 消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.create().show(); } }); } public void setDate(){ //点击"日期"按钮布局 设置日期 oplandate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //通过自定义控件AlertDialog实现 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); View view = (LinearLayout) getLayoutInflater().inflate(R.layout.date_dialog, null); final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker); //设置日期简略显示 否则详细显示 包括:星期\周 datePicker.setCalendarViewShown(false); //初始化当前日期 calendar.setTimeInMillis(System.currentTimeMillis()); datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), null); //设置date布局 builder.setView(view); builder.setTitle("设置日期信息"); builder.setPositiveButton("确 定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //日期格式 StringBuffer sb = new StringBuffer(); sb.append(String.format("%d-%02d-%02d", datePicker.getYear(), datePicker.getMonth() + 1, datePicker.getDayOfMonth())); oplandate.setText(sb); //赋值后面闹钟使用 mYear = datePicker.getYear(); mMonth = datePicker.getMonth(); mDay = datePicker.getDayOfMonth(); dialog.cancel(); } }); builder.setNegativeButton("取 消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.create().show(); } }); }代码很简单 ,只需要在 Activity中 给 日期 和时间 Button 分别添加点击事件就行了.dateBtn.setOnclickListener( setDate());timeBtn.setOnclickListener( setTime());
相关文章推荐
- 自定义View学习-绘制一个简单的圆
- Android图片压缩的几种方式
- Android SDK目录结构及作用
- android,一般动态注册广播的创建和适用具体方法
- android 批量打包
- Android Layout XML属性
- [Android]手机短信验证功能
- 15 个必知的 Android 开发者选项
- Android与H5数据交互
- Android 6.0运行时权限解决办法
- 新思路_Android同时显示多个跑马灯
- 超实用的Android手势锁制作实例教程
- Android的SharedPreferences和PreferenceActivity用法
- Android this document contains very long lines
- Android成长之路(4)——Activity的生命周期(2)
- Android高可拓展框架Conductor源码解析(2)
- Android横竖屏切换总结(Android资料)
- android studio debug签名设置
- android横竖屏切换时Activity的生命周期
- Android 4.4 Kitkat Phone工作流程浅析(四)__RILJ工作流程简析