封装所有版本兼容的Material风格的时间选择器和日期选择器

来源:互联网 发布:java lucene 教程 编辑:程序博客网 时间:2024/06/13 08:26

       官方提供的DatePicker和TimePicker在不同的安卓API版本中显示效果不统一,用第三方开源项目就可以完美的统一风格。

                         

       项目地址:https://github.com/wdullaer/MaterialDateTimePicker


       将这个项目的简单的显示功能封装以后就更加便于使用,代码也更加整洁。


       最新版本不知道为何老是出问题,所以这里用了3.1.0版本

     compile 'com.wdullaer:materialdatetimepicker:3.1.0'
    
     封装源代码:

import android.app.FragmentManager;import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;import java.util.Calendar;/** * 日期选择器和时间选择器的封装类 * 传入参数为一个碎片管理器和Listener接口 * 管理器可以通过getFragmentManager()得到 * Created by ShiZhenTao on 2017/3/3. */public class PickerDialogUtil {    /**     * 日期选择器     * @param manager     * @param listener     */    public static void showDatePickerDialog(FragmentManager manager,                                            DatePickerDialog.OnDateSetListener listener) {        Calendar now = Calendar.getInstance();        DatePickerDialog dpd = DatePickerDialog.newInstance(                listener,                now.get(Calendar.YEAR),                now.get(Calendar.MONTH),                now.get(Calendar.DAY_OF_MONTH)        );        dpd.show(manager, "");    }    /**     * 时间选择器     * @param manager     * @param listener     */    public static void showTimePickerDialog(FragmentManager manager,                                            TimePickerDialog.OnTimeSetListener listener) {        Calendar now = Calendar.getInstance();        TimePickerDialog tpd = TimePickerDialog.newInstance(                listener,                now.get(Calendar.HOUR),                now.get(Calendar.MINUTE),                true);        tpd.show(manager, "");    }}
在项目中使用:
PickerDialogUtil.showTimePickerDialog(getFragmentManager()        , new TimePickerDialog.OnTimeSetListener() {    @Override    public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute            , int second) {            }});
PickerDialogUtil.showDatePickerDialog(getFragmentManager()        , new DatePickerDialog.OnDateSetListener() {    @Override    public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {                    } 
});




0 0
原创粉丝点击