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

开始发觉自带的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;

}

}

}

效果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android日历编程,Android日历控件PickTime代码实例相关推荐

  1. 日历控件的android代码,Android日历控件PickTime代码实例

    Android日历控件PickTime代码实例 发布时间:2020-10-03 16:05:51 来源:脚本之家 阅读:86 作者:手撕高达的村长 最近做项目,需要设置用户的生日,所以做这样一个功能. ...

  2. android 环境配置和安装, Android系统包说明,基本控件,常用代码,ADB 命令行,APK文件确解,小技艺,...

    一.             环境配置和安装(Android2.2) 参考文章:这里 1.1     JDK 1.2     SDK 下载地址:http://dl.google.com/android ...

  3. android开发重要控件,Android界面编程——Android基本控件

    Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员 ...

  4. android excel布局,Androidui布局控件(2)表格布局excelPanel

    推荐理由 RecycleView定制组件 支持向左,向右加载过去,未来数据 列行表头锁定 作为表格布局,可以作为您的ui公共组件库里面的一员,你可以二次开发,让它变得更加可定制化,可扩展,更强大 In ...

  5. Android 自定义日期段选择控件,开始日期-结束日期。

    开发中碰到个需求,需要在一个控件中选择完成开始和结束日期.实现的过程走的是程序员开发的老路子,找到轮子后自己改吧改吧就成了.去年做的找不到参考的文章连接了,请原博主见谅. 当时做的时候有几个需求:1. ...

  6. android 电量控件,Android实现显示电量的控件代码

    下面介绍了Android实现显示电量的控件代码,具体代码如下: 1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先 ...

  7. Study on Android【四】--显示控件使用

    Android的界面显示同样也是基于控件的.通常是用View(包括ViewGroup)控件配上XML的样式来做的.具体细节不想说了,可以参考 Samples里的ApiDemos/View,和View的 ...

  8. Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题

    一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...

  9. Android开发三:常用控件1--TextView、EditText、Button

    上一节写到android的工程目录结构,这一节继续,开始学习控件,中间的跨度挺大,关于Activity和intent的知识我就略过了,原因很简单,网上的关于那个的资料特别多,而且理论的东西我这都是了解 ...

最新文章

  1. 蓝桥杯国赛-估计人数
  2. python os 获取当前路径的绝对路径的上层目录_os 模块常用函数
  3. 渗透知识- Windows系统目录、服务、端口、注册表
  4. CentOS 6.4 i386 版本安装 FastDFS、使用Nginx作为文件访问WEB服务器
  5. 关于 Angular 项目里的 index.ts
  6. autoresetevent java_[原创]AutoResetEvent, ManualResetEvent的Java模拟
  7. Boost库之function的使用
  8. 为什么shell脚本第一行要#!/bin/sh
  9. Mongodb 与 MySQL对比
  10. 1026. 程序运行时间(15)-PAT乙级真题
  11. MacOs终端忽略大小写
  12. Spring Boot @ SpringBootApplication,SpringApplication类
  13. 深度学习2.0-32.经典卷积网络VGG,GoogleNet,Inception-1
  14. 无法使用资源管理器浏览文档库?
  15. 基于GEE使用Landsat 8和Landsat 5影像计算RSEI
  16. ldc1614 c语言编程,LDC1614读回来的数据为固定值不变
  17. 红米1s 一键root测试
  18. 详解DFT的scan(边界扫描)
  19. python安装插件很慢_Sublime text3+python3配置及插件安装
  20. 【游戏设计图形学】模拟自然界火焰的方法

热门文章

  1. Java 模板变量替换——字符串替换器
  2. maven打jar包时报update interval of XXX has elapsed or updates are force
  3. 卡塔尔世界杯门线技术(GOAL LINE TECHNOLOGY)背后的黑科技
  4. 哪个选项不是python文件打开的合法模式组合_下面代码的输出结果是( ):
  5. 电脑键盘部分按键失灵_键盘失灵个别字母不灵怎么处理_电脑键盘个别键没反应如何修复...
  6. MATLAB如何解决弹出路径不存在的问题
  7. 美标Class压力等级与MPa等级换算关系 by阿斯米合金
  8. 普渡大学计算机科学在美就业,优势背景助力美国普渡大学计算机科学CS本科申请!...
  9. 在linux系统下忘记了root密码,在linux系统下,忘记了root密码,可以到()模式下修改找回root密码()...
  10. jupyter notebook如何打开md文件