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

开始发觉自带的 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. 《JAVA与模式》之模板模式(转载)

    模板方法在servlet中的应用:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html 原文出处:http://blo ...

  2. Oracle 12C -- 手动创建CDB

    1.指定oracle_sid $ export ORACLE_SID=db12 2.指定环境变量 比如ORACLE_BASE.ORACLE_HOME.PATH(要包含$ORACLE_HOME/bin) ...

  3. MySQL和ORACLE、SQL Server、PostgreSQL相比

  4. C语言的整型溢出问题

    整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视.整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一 ...

  5. Android Framework中的线程Thread及它的threadLoop方法

    当初跟踪Camera的代码中的时候一直追到了HAL层,而在Framework中的代码看见了许很多多的Thread.它们普遍的特点就是有一个threadLoop方法.依照字面的意思应该是这个线程能够循环 ...

  6. High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件

    原文地址:https://www.codeproject.com/articles/14075/high-speed-charting-control 本文翻译在CodeProject上的介绍(主要还 ...

  7. java 获取局域网中的全部主机名和IP地址

    DOS命令 命令 意义 net view 获取局域网中的全部主机名 ipconfig -all 获取本地IP,主机名,MAC地址 arp -a 获取本局域网中的全部IP地址和物理地址 ping -a ...

  8. C#中const 详细分析与说明

    const是一个c语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮 ...

  9. stm8时钟

    为使系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟(2M).其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动.一旦主时钟源稳定,用户程序可将主时 ...

  10. 一个将java事物的非常好的栗子

    地址:http://www.cnblogs.com/davenkin/archive/2013/02/16/java-tranaction-1.html