一.概述

滚动时间选择现在貌似很常用,所以就总结一下,显示效果一般般 , 做个参考吧!

以上就是效果图,可以滚动选择 日期时间, 由于是在 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());

												

android 滚动时间选择器的更多相关文章

  1. Android日期时间选择器实现以及自定义大小

    本文主要讲两个内容:1.如何将DatePicker和TimePicker放在一个dialog里面:2.改变他们的宽度: 问题1:其实现思路就是自定义一个Dialog,然后往里面同时放入DatePick ...

  2. android 开发 时间选择器TimePicker的使用

    android系统自带时间控件:DatePicker 日期显示控件 DatePickerDialog 日期对话框控件TimePicker 时间显示控件 TimePickerDialog 时间对话框控件 ...

  3. 【Android】时间选择器,选择日期DatePicker 简单详解demo及教程

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  4. 推荐一个android 日期时间选择器(转)

    最近接触了日期选择的功能,那么肯定得需要一个日期选择控件,Android 系统有自带的 DatePicker 控件,但是不说这个控件有多 难看吧,现在 Android 手机版本那么多,用户弹出来的控件 ...

  5. Android日期时间选择器DatePicker、TimePicker日期时间改变事件响应(Android学习笔记)

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  6. android日期时间选择器

    android原生的日期时间控件,因为是原生的总有其满足不了我们需求的时候,Android 手机版本那么多,用户弹出来的控件五花八门.因为项目需要,在网上找了一 些demo看了看,感觉有些写的很好,很 ...

  7. Android studio 时间选择器

    相当简单加载 gradle文件然后做一个textview即可. 1.首先我们要在build.gradle中写上这一行代码: compile 'com.feezu.liuli:timeselector: ...

  8. Android——图片视图(ImageView)、状态开关按钮(ToggleButton)、时钟、图片透明度、滚动和时间选择器

    activity_ui1.xml dth="wrap_content" android:layout_height="wrap_content" android ...

  9. Android课程---日历选择器和时间选择器

    package com.hanqi.test5; import android.os.Bundle; import android.support.annotation.IdRes; import a ...

随机推荐

  1. AVL树(查找、插入、删除)——C语言

    AVL树 平衡二叉查找树(Self-balancing binary search tree)又被称为AVL树(AVL树是根据它的发明者G. M. Adelson-Velskii和E. M. Land ...

  2. Gin + Vue全栈开发实战(二)

    尝试地写了第一篇自己学习Go Web框架的感受和入门的文章,发现反响还不错,大家也提出了很多的问题来一起交流.近期也渐渐地出现了很多有关go语言开发的相关文章,包括有在蚂蚁金服的大牛的分享,我也一直有 ...

  3. SpringBoot 缓存模块

    默认的缓存配置 在诸多的缓存自动配置类中, SpringBoot默认装配的是SimpleCacheConfigguration, 他使用的CacheManager是 CurrentMapCacheMa ...

  4. 关于在taro使用wx.parse那些事

    好久不见,好久没更新博客,最近工作也比较忙,今天在使用解决富文本的时候遇到两个bug,由于第一次使用wx.parse经验不足,走了很多弯路,今天特地把自己修复bug的感想分享一下,希望能帮助更多的小伙 ...

  5. 微信小程序页面跳转url如何传对象参数

    两步走 首先第一步:wx.navigateTo({ url:"XXX"+"&params="+ JSON.stringify(obj); }) 第二步获 ...

  6. 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)

    背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告.  公司jenkins搭建在linux服务器上 ...

  7. 图数据库 Nebula Graph 的数据模型和系统架构设计

    Nebula Graph:一个开源的分布式图数据库.作为唯一能够存储万亿个带属性的节点和边的在线图数据库,Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供极高的 ...

  8. from 表单用 GET 方法进行 URL 传值时后台无法获取问题

    问题描述 <a href="${pageContext.request.contextPath}/client?method=add">点我</a> < ...

  9. Springboot源码分析之事务拦截和管理

    摘要: 在springboot的自动装配事务里面,InfrastructureAdvisorAutoProxyCreator ,TransactionInterceptor,PlatformTrans ...

  10. JavaScript中几种常见的兼容问题及解决方案

    在js中好用的东西一般都存在兼容问题,以下,我整理了一些常用的兼容处理方法,自己用的时候可以把他们放在一个JS文件中,需要用到时候直接引入,会比较方便. 一.获取非行内样式 function getS ...