登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

自定义View实现一个好用的日期时间选择器

jzmanu   2019-05-12 22:05   收藏

MDatePickerDialog 常用设置如下:

设置对应属性设置方法默认值
标题mTitlesetTitle(String mTitle)日期选择
显示位置mGravitysetGravity(int mGravity)Gravity.CENTER
时候支持点击外部区域取消isCanceledTouchOutsidesetCanceledTouchOutside(boolean canceledTouchOutside)false
是否支持时间isSupportTimesetSupportTime(boolean supportTime)false
是否支持12小时制isTwelveHoursetTwelveHour(boolean twelveHour)false

使用

gradle
compile 'com.manu:MDatePicker:1.0.1'
maven
<dependency>
	<groupId>com.manu</groupId>
	<artifactId>MDatePicker</artifactId>
	<version>1.0.1</version>
	<type>pom</type>
</dependency>
ivy
<dependency org="com.manu" name="MDatePicker" rev="1.0.1">
	<artifact name="MDatePicker" ext="pom"></artifact>
</dependency>

MDatePickerDialog 的使用和普通的 Dialog 一样,参考如下:

MDatePickerDialog dialog = new MDatePickerDialog.Builder(this)
    //附加设置(非必须,有默认值)
    .setCanceledTouchOutside(true)
    .setGravity(Gravity.BOTTOM)
    .setSupportTime(false)
    .setTwelveHour(true)
    .setCanceledTouchOutside(false)
    //结果回调(必须)
    .setOnDateResultListener(new MDatePickerDialog.OnDateResultListener() {
        @Override
        public void onDateResult(long date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(date);
            SimpleDateFormat dateFormat = (SimpleDateFormat) SimpleDateFormat.getDateInstance();
            dateFormat.applyPattern("yyyy-MM-dd HH:mm");
            Toast.makeText(MainActivity.this, dateFormat.format(new Date(date)), Toast.LENGTH_SHORT).show();
        }
    })
    .build();
dialog.show();

显示效果

MPickViewMDatePickerDialog
MPickViewMDatePickerDialog

版本记录

1.0.0

草稿版本,可以使用不过有 bug.

1.0.1

  • 修复日期回调月份错误 Bug
  • 修年月日时分秒都显示时。低屏幕密度手机显示不全的问题
  • 其他可能影响使用的问题

欢迎在 issue 上反映问题,以便及时修复。

作者

可以关注公众号:jzman-blog,一起交流学习。
image

项目地址:https://github.com/jzmanu/MDatePickerSample