文档章节

系统日历

p
 passengers
发布于 2017/07/07 16:47
字数 466
阅读 2
收藏 0

一、当前时间的获取与日历并不复杂,我们只需要通过Calendar来获取当前时间,然后定义出DatePickerDialog(日历对话框),在里面添加我们所需要的事件而已。(这个类会调用系统自己的日历) 二、在xml布局文件中设置一个按钮,用来触发显示日历的点击事件 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/mainDateButton" android:textSize="25dp" android:hint="点击修改生日"/> 注意:最好不要在这里设置它的Text,因为我们后面需要通过它的Text来进行判断 三、java代码 public class MainActivity extends Activity {

Button button;
String birthday = "";	//这个变量是用来存放Button里面的Text值得

[@Override](https://my.oschina.net/u/1162528)
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button= (Button) this.findViewById(R.id.mainDateButton);
    if(button.getText().length()==0){
        birthday = "1990-1-1";
    }	//如果在xml文件中设置Text,就会导致不管将日期设置为多少,Button上面都会将它初始化,所以我们需要在这里判断,并手动赋值
    button.setText(birthday);
    button.setOnClickListener(new View.OnClickListener() {
        [@Override](https://my.oschina.net/u/1162528)
        public void onClick(View v) {
            try {
                Calendar calendar =Calendar.getInstance();   //获取当前时间
                SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
                Date date = simpleDateFormat.parse(birthday); //设置显示日期的格式
                calendar.setTime(date);

                final DatePickerDialog pickerDialog = new DatePickerDialog( MainActivity.this, null,
                        calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));//重点:日历对话框

                pickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "完成", new DialogInterface.OnClickListener() {	//对话框的点击事件
                    [@Override](https://my.oschina.net/u/1162528)
                    public void onClick(DialogInterface dialog, int which) {
                        DatePicker datePicker = pickerDialog.getDatePicker();
		//拿到日期选择器
                        int year = datePicker.getYear();
                        int month = datePicker.getMonth() + 1;	//因为日期是从一月开始的,而月份的获取是从0开始的,所以这里需要 +1
                        int day = datePicker.getDayOfMonth();

                        birthday = String.format("%d-%d-%d", year, month, day);
                        button.setText(birthday);	//设置完以后,将新的日期放入变量中,并保存在Button里的Text值里面。
                    }
                });

                pickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
                    [@Override](https://my.oschina.net/u/1162528)
                    public void onClick(DialogInterface dialog, int which) { } });

                pickerDialog.show();

            } catch (ParseException e) {
                Log.i("lzz","创建失败");
                e.printStackTrace();
            }
        }
    });

}

}

© 著作权归作者所有

共有 人打赏支持
p
粉丝 0
博文 7
码字总数 2822
作品 0
长沙
使用 EventKit 向系统日历中添加事件

使用 EventKit 向系统日历中添加事件 本文主要内容是如何一步一步使用在iOS设备中添加日历,并在日历中添加事件和提醒事项。 源代码Github 类和属性 EKAlarm 提醒操作类 类用于提供操作系统日...

秋刀生鱼片
2017/06/05
0
0
android 给系统日历插入提醒事件问题

如题: 用户在app其他界面填写内容插入提醒事件没有问题,系统日历也会显示事件,但是在登录界面登录成功后获取接口数据创建日历提醒事件时日志提示成功,系统日历里事件没有显示,第二次再登...

虚无小飞
2016/03/26
1K
1
企业级日历系统--bedework

Bedework (发音 "beadwork")是一个开放源码的企业日历系统。Bedework支持个人,公众和团体活动。它使用现有的开放标准,并支持基于Web和其他形式的访问,包括CalDAV和门户集成。它的设计遵循...

匿名
2016/03/21
800
2
Joda-Time v2.8.2 发布,Java 日期时间处理库

Joda-Time v2.8.2 发布,该版本带来了新的提升,bug 修复等等,主要如下: - DateTimeZone data updated to version 2015f 更多内容请看:change notes 下载地址:v2.8.2 JodaTime 提供了一组...

oschina
2015/08/12
1K
3
Joda-Time v2.8 发布,Java 日期时间处理库

Joda-Time v2.8 发布,该版本完全兼容 2.7 版本,主要改进包括: 1. 使用 Unicode 对 properties 文件进行转义 2. 避免 Android jar 包中的 ProGuard 错误 JodaTime 提供了一组Java类包用于处...

oschina
2015/05/30
3.3K
13

没有更多内容

加载失败,请刷新页面

加载更多

sourcetree 离线免注册登录安装教程

Sourcetree是一个优秀的git可视化管理工具,深受开发者喜爱Sourcetree官网,但是在安装时需要谷歌账户登录,需要翻qiang才可以,此一点一直被人们所诟病。今天本教程就为大家提供离线免登陆安...

QQZZFT
15分钟前
1
0
使用 PostgreSQL 解决一个实际的统计分析问题

使用 PostgreSQL 解决一个实际的统计分析问题作者:老农民(刘启华)Email: 46715422@qq.com 之前有个朋友扔给我一个奇葩需求,他们公司之前做了一批问卷调查,全部都是统一格式的excel...

新疆老农民
18分钟前
1
0
TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {    name?: string;    age?...

durban
33分钟前
1
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.an......

郑加威
33分钟前
1
0
RxJS的另外四种实现方式(后记)—— 同时实现管道和链式编程

目录 RxJS的另外四种实现方式(序) RxJS的另外四种实现方式(一)——代码最小的库 RxJS的另外四种实现方式(二)——代码最小的库(续) RxJS的另外四种实现方式(三)——性能最高的库 Rx...

一个灰
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部