最近做项目,需要设置用户的生日,所以做这样一个功能。

开始发觉自带的 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的更多相关文章

  1. android日历控件(一)

    自定义日历并且具备设置今天以前的时间不可点选,以前的颜色和当前的颜色不同,以及获取两次点击日期之间间隔的天数所以说细节比较多 个人习惯,先上图 靠,笔记本不知道怎么回事,禁用到触摸板之后 再次唤醒屏幕 ...

  2. android日历控件

    源码地址 : http://download.csdn.net/detail/abc13939746593/7265459

  3. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

  4. android 自定义日历控件

    日历控件View: /** * 日历控件 功能:获得点选的日期区间 * */ public class CalendarView extends View implements View.OnTouc ...

  5. Android开发之日历控件实现

    Android开发之日历控件实现:以下都是转载的. 日历控件 日历控件 日历控件 日历控件

  6. 撸一个Android高性能日历控件,高仿魅族

    Android原生的CalendarView根本无法满足我们日常开发的需要,在开发吾记APP的过程中,我觉得需要来一款高性能且美观简洁的日历控件,觉得魅族的日历风格十分适合,于是打算撸一款. gith ...

  7. Android自己定义组件之日历控件-精美日历实现(内容、样式可扩展)

    需求 我们知道.Android系统本身有自带的日历控件,网络上也有非常多开源的日历控件资源.可是这些日历控件往往样式较单一.API较多.不易于在实际项目中扩展并实现出符合详细样式风格的,内容可定制的效 ...

  8. Android自定义View(CustomCalendar-定制日历控件)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/54020386 本文出自:[openXu的博客] 目录: 1分析 2自定义属性 3onMeas ...

  9. Android 一个日历控件的实现代码

    转载  2017-05-19   作者:Othershe   我要评论 本篇文章主要介绍了Android 一个日历控件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看 ...

随机推荐

  1. 【jsp】jsp中的动作元素

    一,动作元素(Action):预定义的java代码.目的在于代码的可重用性. 1,为请求阶段提供信息,允许在页面之间转移控制权.  2,JSP2.0规范定义了标准动作,标准动作是一些标签,影响JSP运 ...

  2. 【C语言】练习3-5

     题目来源:<The C programming language>中的习题P51  练习2-1:  编写函数itob(n, s, b),将整数n转换为以b为底的数,并将转换结果以字符的形 ...

  3. Java 内存模型及GC原理 (转载)

    一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性能.与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能 ...

  4. Debian下的crontab保存

    nano编译器 ctrl+x然后y,保存退出

  5. SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II

    这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...

  6. jQuery $.ajax 参数说明及调用注意事项

    $.ajax参数设置 备注:data.contentType.dataType属性值很重要!!! async 类型:Boolean 默认值: true.默认设置下,所有请求均为异步请求.如果需要发送同 ...

  7. STM8的数据@near @tiny定义

    总是记不住这个:stm8 stvd下 near等于51的xdata tiny等于51的idata http://www.waveshare.net/article/STM8-3-1-10.htm 如何 ...

  8. Knockout: radio选项切换引发click事件的一点总结

    1.场景:如下图,当选择定期存款时,输入框右边出现红色的必输项星号,当选择活期存款时,不再出现该星号. 2.思路一:不使用knockout,直接用click事件,就可以实现这个需求,代码如下: < ...

  9. c# xml 输出注释格式控制

    string str="\n\t///*! 妆容类物品子分类 */\n\tenum MakeupSubType\n\t{\n\t\tItem_InvalidMakeupSubType = - ...

  10. Android 计算文件 MD5 遇到的问题

    版本下载,做 MD5 校验,使用的 MD5 算法出现了异常,当出现以 0 开头的 MD5的时候,会把 0 给忽略掉,造成 MD5 只有 31 位,造成校验失败. 转:http://blog.csdn. ...