Android 日历控件PickTime
最近做项目,需要设置用户的生日,所以做这样一个功能。
开始发觉自带的 DatePicker 很是不好用。
上代码:
<DatePicker
android:id="@+id/dpPicker"
android:datePickerMode="spinner"
android:calendarViewShown="false"
android:layout_marginTop="150dp"
android:spinnersShown="true"
android:yearListSelectorColor = "@color/colorPrimaryDark"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
初始化代码:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA);
datePicker = (DatePicker) findViewById(R.id.dpPicker);
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取一个日历对象,并初始化为当前选中的时间
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm");
Toast.makeText(MainActivity.this,
format.format(calendar.getTime()), Toast.LENGTH_SHORT)
.show();
}
});
结果效果如此:

android:datePickerMode="spinner"
这个属性会切换为日历选择状态。

还容易出现英文这种鬼东西,于是不在研究,直接找插件去。
于是发现PickTime 很好用的,来说下使用方法:
//日期选择控件
implementation 'com.github.codbking:PickTime:v1.0.1'
//item控件
implementation 'com.github.codbking:AllItemView:v1.0.0'
然后是调用代码:
package controller.hzl.com.timetest; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast; import com.codbking.view.ItemView;
import com.codbking.widget.DatePickDialog;
import com.codbking.widget.bean.DateType; import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private DatePicker datePicker;
private TimePicker timePicker; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ItemView xx = findViewById(R.id.item4);
xx.setOnClickListener(this); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA); datePicker = (DatePicker) findViewById(R.id.dpPicker);
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() { @Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取一个日历对象,并初始化为当前选中的时间
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm");
Toast.makeText(MainActivity.this,
format.format(calendar.getTime()), Toast.LENGTH_SHORT)
.show();
}
}); } private void showDatePickDialog(DateType type) {
DatePickDialog dialog = new DatePickDialog(this);
//设置上下年分限制
dialog.setYearLimt(5);
//设置标题
dialog.setTitle("选择时间");
//设置类型
dialog.setType(type);
//设置消息体的显示格式,日期格式
dialog.setMessageFormat("yyyy-MM-dd");
//设置选择回调
dialog.setOnChangeLisener(null);
//设置点击确定按钮回调
dialog.setOnSureLisener(null);
dialog.show();
} @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.item4:
showDatePickDialog(DateType.TYPE_YMD);
break; }
}
}
效果如图:

代码: 链接:https://pan.baidu.com/s/1jOCaAcIYFB1XcaeG5kj7vQ 密码:ycfj
Android 日历控件PickTime的更多相关文章
- android日历控件(一)
自定义日历并且具备设置今天以前的时间不可点选,以前的颜色和当前的颜色不同,以及获取两次点击日期之间间隔的天数所以说细节比较多 个人习惯,先上图 靠,笔记本不知道怎么回事,禁用到触摸板之后 再次唤醒屏幕 ...
- android日历控件
源码地址 : http://download.csdn.net/detail/abc13939746593/7265459
- Android 开源控件与常用开发框架开发工具类
Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...
- android 自定义日历控件
日历控件View: /** * 日历控件 功能:获得点选的日期区间 * */ public class CalendarView extends View implements View.OnTouc ...
- Android开发之日历控件实现
Android开发之日历控件实现:以下都是转载的. 日历控件 日历控件 日历控件 日历控件
- 撸一个Android高性能日历控件,高仿魅族
Android原生的CalendarView根本无法满足我们日常开发的需要,在开发吾记APP的过程中,我觉得需要来一款高性能且美观简洁的日历控件,觉得魅族的日历风格十分适合,于是打算撸一款. gith ...
- Android自己定义组件之日历控件-精美日历实现(内容、样式可扩展)
需求 我们知道.Android系统本身有自带的日历控件,网络上也有非常多开源的日历控件资源.可是这些日历控件往往样式较单一.API较多.不易于在实际项目中扩展并实现出符合详细样式风格的,内容可定制的效 ...
- Android自定义View(CustomCalendar-定制日历控件)
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/54020386 本文出自:[openXu的博客] 目录: 1分析 2自定义属性 3onMeas ...
- Android 一个日历控件的实现代码
转载 2017-05-19 作者:Othershe 我要评论 本篇文章主要介绍了Android 一个日历控件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看 ...
随机推荐
- php截取字符去掉最后一个字符
$str="中国.美国.俄罗斯.德国."$str=substr($str,0,-1); 输出结果为:中国.美国.俄罗斯.德国
- JQuery九大选择器
九大选择器都是用来查找元素节点的.JQuery给我提供了九中类型的选择器. 1. 基本选择器 基本选择器是JQuery最常用的选择器,也是最简单的选择器,它通过元素id.class和标签名来查找DO ...
- C++中的#和##运算符
#和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转换成字符串常量 #define STRING(x) #x#x#x #define TEX ...
- HBase随机读写
HDFS不太适合做大量的随机读应用,但HBASE却特别适合随机的读写 个人理解: 1.数据库一般都会有一层缓存,任何对数据的更改实际上是先更改内存中的数据.然后有异步的守护进程负责将脏页按照一定策略刷 ...
- Android基础知识之Manifest中的Intent-filter元素
原文:http://android.eoe.cn/topic/android_sdk :指定活动.服务.或者广播接收者能支持的intent的类型.一个意图过滤器声明了其父组件的能力——一个活动或者服务 ...
- Eclipse 不能build, pom文件上面有叉叉 解决办法
Error message: [html] view plaincopy execution not covered by lifecycle configuration: org.apache. ...
- WebClient请求帮助类
/// <summary> /// 通过JSON方式发送POST请求 /// 将返回结果按JSON方式解析 /// </summary> public static class ...
- Socket网络编程--Libev库学习(3)
这一小节继续讲解各个观察器(Watcher). 上一小节已经讲解了ev_io(IO可读可写观察器),ev_stat(文件属性变化观察器),ev_signal(信号处理观察器),ev_timer(定时器 ...
- FATAL ERROR: Could not find ./share/fill_help_tables.sql
[root@c01 mysql-5.6.33]# /apps/mysql-5.6.33/scripts/mysql_install_db --datadir=/data/my_db --user=my ...
- CCImage
#ifndef __CC_IMAGE_H__ #define __CC_IMAGE_H__ //派生于CCObject #include "cocoa/CCObject.h" // ...