Android 时间轴 生日选择 简单实现

A. 导依赖 compile ‘com.contrarywind:Android-PickerView:3.2.7’
B. mShengri.setFocusable(false);
C.点击监听中调用
initData2();
initTimePicker1();
1.java代码

  private void initData2() {
    TimePickerView pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
        @Override
        public void onTimeSelect(Date date, View v) {
            mEd.setText(getTime(date));
        }
    }).build();
    pvTime.setDate(Calendar.getInstance());
    pvTime.show();
}

 private void initTimePicker1() {//选择出生年月日

    //控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释)

    //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11

    Date curDate = new Date(System.currentTimeMillis());//获取当前时间

    SimpleDateFormat formatter_year = new SimpleDateFormat("yyyy ");

    String year_str = formatter_year.format(curDate);

    int year_int = (int) Double.parseDouble(year_str);





    SimpleDateFormat formatter_mouth = new SimpleDateFormat("MM ");

    String mouth_str = formatter_mouth.format(curDate);

    int mouth_int = (int) Double.parseDouble(mouth_str);



    SimpleDateFormat formatter_day = new SimpleDateFormat("dd ");

    String day_str = formatter_day.format(curDate);

    int day_int = (int) Double.parseDouble(day_str);





    Calendar selectedDate = Calendar.getInstance();//系统当前时间

    Calendar startDate = Calendar.getInstance();

    startDate.set(1900, 0, 1);

    Calendar endDate = Calendar.getInstance();

    endDate.set(year_int, mouth_int - 1, day_int);



    //时间选择器

    pvTime1 = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {

        @Override

        public void onTimeSelect(Date date, View v) {//选中事件回调

            // 这里回调过来的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null

            /*btn_Time.setText(getTime(date));*/


            mEd.setText(getTime(date));

        }

    })


            .setType(new boolean[]{true, true, true, false, false, false}) //年月日时分秒 的显示与否,不设置则默认全部显示

            .setLabel("年", "月", "日", "", "", "")//默认设置为年月日时分秒

            .isCenterLabel(false)

            .setDividerColor(Color.RED)

            .setTextColorCenter(Color.RED)//设置选中项的颜色

            .setTextColorOut(Color.BLUE)//设置没有被选中项的颜色

            .setContentSize(21)

            .setDate(selectedDate)

            .setLineSpacingMultiplier(1.2f)

            .setTextXOffset(-10, 0, 10, 0, 0, 0)//设置X轴倾斜角度[ -90 , 90°]

            .setRangDate(startDate, endDate)
            .setDecorView(null)//                .setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色

            .build();

}

//可根据需要自行截取数据显示

 private String getTime(Date date) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    return format.format(date);

}

2.xml文件
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值