系统日历

一、当前时间的获取与日历并不复杂,我们只需要通过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();
            }
        }
    });

}

}

转载于:https://my.oschina.net/u/3589423/blog/1204521

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值