Android 日期选择器

public class MainActivity extends AppCompatActivity {

    @Override
    protected voidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextViewopen =(TextView) findViewById(R.id.open);
        open.setOnClickListener(new View.OnClickListener() {
            @Override
            publicvoid onClick(View view) {
                //获取日历类
                Calendar calendar = Calendar.getInstance();
                //弹出日历窗口,日历底部会自动显示系统自动提供的“完成”按钮,但是这种方式缺点太多
                new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                        open.setText(i + "-" + (i1 + 1) + "-" + i2);
                    }

                }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE)).show();


                //我们对上面的日历选择器进行简单的优化,看看是不是更完美一点
                //获取日历类
                Calendar calendar = Calendar.getInstance();
                //实例化日历窗口,获取当前年月日
                final DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, null, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE));
                //如果是要为控件设置生日的话,生日不能大于当前日期
                dialog.getDatePicker().setMaxDate(new Date().getTime());
                /**
                 * 注意:上面设置的当前最大日期在不同的手机的版本有一个缺陷,首次显示日期选择器的时候,今天(就是当前日期)可以点击选择
                 * 但是,当你点击其他时间后会发现今天的日期不能选择了
                 */
                //dialog.getDatePicker().setMaxDate(new Date().getTime() + 24 * 60 * 60 * 1000);//多加一天,为了解决Android自带时间选择器不能点击当天的bug
                //设置点击外部是否取消窗口
                dialog.setCanceledOnTouchOutside(false);
                dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", newDialogInterface.OnClickListener() {
                    @Override
                    public void onClick (DialogInterface dialogInterface,int i){
                    //获取时间采集类
                    DatePicker picker = dialog.getDatePicker();
                    open.setText(picker.getYear() + "-" + (picker.getMonth() + 1) + "-" + picker.getDayOfMonth());
                }
             });
                dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", newDialogInterface.OnClickListener() {
                    @Override
                    public void onClick (DialogInterface dialogInterface,int i){
                    System.out.println("");
                }
             });
                dialog.show();

            }

        });

    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值