个人第三方控件依赖库总结

个人第三方控件依赖库总结

(2018-03-23)

  • 日期和时间选择对话框

第三方依赖库

  • datetimepicker

个人使用

datetimepicker 日期和时间的对话框

网址: https://github.com/MrFuShuai/datetimepicker

使用

添加依赖 compile ‘com.github.flavienlaurent.datetimepicker:library:0.0.2’

弹出日期时间选择对话框并设置系统日期和时间

/**
 * <pre>
 *     author : Mr.Fu
 *     e-mail : 18622268981@163.com
 *     time   : 2018/03/23
 *     desc   : 其他设置界面 ----> 手动设置系统日期和时间
 *     version: 1.0
 * </pre>
 */

public class OtherSettingFragment extends BaseFragment implements DatePickerDialog.OnDateSetListener,
        TimePickerDialog.OnTimeSetListener {

    public static final String DATE_PICKER_TAG = "date_picker";
    public static final String TIME_PICKER_TAG = "time_picker";

    private Calendar calendar;

    ...
    ...
    ...

    private void showDatePickerDialog() {

        calendar = Calendar.getInstance();
        DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(this,
                calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DAY_OF_MONTH),
                true);
        datePickerDialog.setVibrate(true);
        datePickerDialog.setCancelable(false);
        datePickerDialog.setCloseOnSingleTapDay(false);
        datePickerDialog.setYearRange(2018, 2037);
        datePickerDialog.show(getFragmentManager(), DATE_PICKER_TAG);
    }

    private void showTimePickerDialog() {

        calendar = Calendar.getInstance();
        TimePickerDialog timePickerDialog = TimePickerDialog.newInstance(this,
                calendar.get(Calendar.HOUR_OF_DAY),
                calendar.get(Calendar.MINUTE),
                true,
                false);
        timePickerDialog.setVibrate(true);
        timePickerDialog.setCancelable(false);
        timePickerDialog.setCloseOnSingleTapMinute(false);
        timePickerDialog.show(getFragmentManager(), TIME_PICKER_TAG);
    }

    @Override
    public void onDateSet(DatePickerDialog datePickerDialog, int year, int month, int day) {

        // 设置系统日期为当前选中的日期
        setSysDate(year, month, day);
    }

    private void setSysDate(int year, int month, int day) {

        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month);
        calendar.set(Calendar.DAY_OF_MONTH, day);

        long when = calendar.getTimeInMillis();

        if (when / 1000 < Integer.MAX_VALUE) {
            ((AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE)).setTime(when);
        }
    }

    @Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {

        // 设置系统时间为当前选中的时间
        setSysTime(hourOfDay, minute);
    }

    private void setSysTime(int hourOfDay, int minute) {

        calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        long when = calendar.getTimeInMillis();

        if(when / 1000 < Integer.MAX_VALUE){
            ((AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE)).setTime(when);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值