DatePickerDialog 自定义样式及使用全解

时间:2023-01-10 12:07:55

1.增加Theme主题

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

效果:
DatePickerDialog 自定义样式及使用全解
4.0以上的版本才可使用此Theme,注意对版本的判断。

若低版本的则主题设置为以下
android:theme=”@android:style/Theme.Light.NoTitleBar”
效果:
DatePickerDialog 自定义样式及使用全解

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();