public class PrefAutoRefreshStartTime extends DialogPreference implements TimePicker.OnTimeChangedListener {
/** * The validation expression for this preference */
private static final String VALIDATION_EXPRESSION = "[0-2]*[0-9]:[0-5]*[0-9]";
/** * The default value for this preference */
private String defaultValue;
/** * @param context * @param attrs */
public PrefAutoRefreshStartTime(Context context, AttributeSet attrs) { super(context, attrs); initialize(context); } /** * @param context * @param attrs * @param defStyle */ public PrefAutoRefreshStartTime(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initialize(context); } /** * Initialize this preference */ private void initialize(Context context) { setPersistent(true); SharedPreferences sp = getPreferenceManager().getDefaultSharedPreferences(getContext()); String timeTemp = sp.getString(IConfigsParameters.KEY_P_AUTOFRESH_START, ""); if(null != timeTemp){ setSummary(packageTimeInfo(timeTemp)); }else{ setSummary(packageTimeInfo(context.getText(R.string.time_default_auto_update_start).toString())); } } /* * (non-Javadoc) * * @see android.preference.DialogPreference#onCreateDialogView() */ @Override protected View onCreateDialogView() { TimePicker tp = new TimePicker(getContext()); tp.setOnTimeChangedListener(this); /** */ SharedPreferences sp = getPreferenceManager().getDefaultSharedPreferences(getContext()); String timeTemp = sp.getString("p_autofresh_strart", ""); String[] time = timeTemp.split(":"); if((time != null) && (time.length == 2)){ Integer hour = Integer.decode(time[0]); Integer min = Integer.decode(time[1]); tp.setCurrentHour(hour); tp.setCurrentMinute(min); }else{ /** */ int h = getHour(); int m = getMinute(); if (h >= 0 && m >= 0) { tp.setCurrentHour(h); tp.setCurrentMinute(m); } } return tp; } /* * (non-Javadoc) * * @see * android.widget.TimePicker.OnTimeChangedListener#onTimeChanged(android * .widget.TimePicker, int, int) */ @Override public void onTimeChanged(TimePicker view, int hour, int minute) { setSummary(packageTimeInfo((""+hour+":"+minute))); persistString(hour + ":" + minute); } /* * (non-Javadoc) * * @see android.preference.Preference#setDefaultValue(java.lang.Object) */ @Override public void setDefaultValue(Object defaultValue) { // BUG this method is never called if you use the 'android:defaultValue' // attribute in your XML preference file, not sure why it isn't super.setDefaultValue(defaultValue); if (!(defaultValue instanceof String)) { return; } if (!((String) defaultValue).matches(VALIDATION_EXPRESSION)) { return; } this.defaultValue = (String) defaultValue; } /** * Get the hour value (in 24 hour time) * * @return The hour value, will be 0 to 23 (inclusive) */ private int getHour() { String time = getPersistedString(this.defaultValue); if (time == null || !time.matches(VALIDATION_EXPRESSION)) { return -1; } return Integer.valueOf(time.split(":")[0]); } /** * Get the minute value * * @return the minute value, will be 0 to 59 (inclusive) */ private int getMinute() { String time = getPersistedString(this.defaultValue); if (time == null || !time.matches(VALIDATION_EXPRESSION)) { return -1; } return Integer.valueOf(time.split(":")[1]); } private String packageTimeInfo(String time){ String[] times = time.split(":"); StringBuffer sb = new StringBuffer(); sb.append(times[0]).append("时"); if(times[1].length() < 2){ sb.append("0"); } sb.append(times[1]).append("分"); return sb.toString(); } }
如何使用? 在覆盖相应的方法中写入sharedpreference文件就ok。。。
从我的qq日志复制过来 结果这么吐血 !!
分享到:
相关推荐
使用DatePicker实现日历选择器及使用TimePicker实现时间选择器;使用DatePickerDialog实现日期选择对话框及使用TimePickerDialog实现时间选择对话框。
仿照ElementUI中的TimePicker实现的WPF 版时间选择器(TimePicker)
timepicker
依赖属性实现一个简单TimePicker 一般使用足够
Android组件TimePicker组件的深入解析,自定义TimePicker组件
Android组件TimePicker组件的深入解析,自定义TimePicker组件,实现分钟间隔为5分钟选择
Android TimePicker时间控件
自学 Android 做的第十个 Android 程序,使用了 TimePicker
使用DatePicker和TimePicker方式也很简单,例子中主要展示了这两个view,另外要加以区分的是DatePicker使用init方法来设置初始时间以及绑定Listener,而TimePicker只需实现setOnTimeChangedListener接口就行。...
自定义DataPIcker和TimePicker,多级联动,可自定义样式
自定义时间控件timePicker的样式
国外用JS实现的timepicker的Demo
NULL 博文链接:https://codesec.iteye.com/blog/1354142
jquery-ui-timepicker-addon.css jquery-ui-timepicker-addon.js jquery-ui-timepicker-zh-CN.js
Android TimePicker组件使用及简单实例。
bootstrap-timepicker 时间插件
直接运行是numberpicker,anctivty_main和MainActivity中注释的代码是timepicker
时间选择控件,点击文本框选择时间,不是日期
(Deprecated) TimePicker Android Library for TimePicker View Images of Sample App Usage Gradle Import: jcenter ```groovy dependencies { compile 'com.github.erz05:TimePicker:0.1.5@aar' } ``` ...