DatePickerDialog 自定义样式及使用全解

来源:互联网 发布:牟宗三 知乎 编辑:程序博客网 时间:2024/05/21 23:33

1.增加Theme主题

new DatePickerDialog(this, AlertDialog.THEME_HOLO_LIGHT,null).show();

效果:
这里写图片描述
4.0以上的版本才可使用此Theme,注意对版本的判断。

若低版本的则主题设置为以下
android:theme=”@android:style/Theme.Light.NoTitleBar”
效果:
这里写图片描述

2.新建DatePickerDialog

DatePickerDialog datePicker = new DatePickerDialog(MainActivity.this, AlertDialog.THEME_HOLO_LIGHT, new OnDateSetListener() {        @Override        public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {        // TODO Auto-generated method stub         }    }, 2014, 1, 7);datePicker.show();

以上代码中设置了默认的日期为2014年1月7日。

3.获取选中的日期

Toast.makeText(MainActivity.this,year + "year " + (monthOfYear + 1) + "month " + dayOfMonth + "day",Toast.LENGTH_SHORT).show();

在onDateSet中加入以上代码即可。

4.转换日期格式

StringBuffer sb = new StringBuffer();sb.append(String.format("%d-%02d-%02d", datePicker.getYear(), datePicker.getMonth() + 1,datePicker.getDayOfMonth()));

同样的在onDateSet中加入以上代码,即可通过sb.toString();中输出标准的日期格式,如:2014-1-7

5.完整代码

DatePickerDialog datePicker =                        new DatePickerDialog(MainActivity.this, AlertDialog.THEME_HOLO_LIGHT, new OnDateSetListener() {                            @Override                            public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {                                // TODO Auto-generated method stub                                Toast.makeText(MainActivity.this,                                        year + "year " + (monthOfYear + 1) + "month " + dayOfMonth + "day",                                        Toast.LENGTH_SHORT).show();                                StringBuffer sb = new StringBuffer();                                sb.append(String.format("%d-%02d-%02d", datePicker.getYear(), datePicker.getMonth() + 1,                                        datePicker.getDayOfMonth()));                            }                        }, 2014, 1, 7);                datePicker.show();
1 0
原创粉丝点击