`
yzhong_sa
  • 浏览: 89935 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

TimePicker Preference实现

阅读更多

 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日志复制过来 结果这么吐血 !!

分享到:
评论

相关推荐

    仿照ElementUI中的TimePicker实现的WPF 版时间选择器(TimePicker)

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中实现一个类似于ElementUI的TimePicker组件。ElementUI是一款流行的前端UI库,其TimePicker组件提供了用户友好的时间选择功能。我们将...

    WPF简单的TimePicker

    在本篇讨论中,我们将深入理解如何使用依赖属性来实现一个简单的TimePicker控件,以及这种实现方式的优势。 依赖属性是WPF框架中的一个重要概念,它允许控件属性与其他对象(如数据绑定源)之间建立动态关系。依赖...

    Android 自定义TimePicker组件

    例如,如果我们要创建一个全屏的、背景透明的TimePicker,可以这样实现: ```java public class CustomTimePicker extends TimePicker { public CustomTimePicker(Context context) { super(context); init...

    使用DatePicker实现日历选择器及使用TimePicker实现时间选择器

    接下来,我们将深入探讨如何使用`DatePicker`实现日历选择器以及如何使用`TimePicker`实现时间选择器,并结合`DatePickerDialog`和`TimePickerDialog`来创建相应的对话框。 1. **DatePicker**: `DatePicker`是...

    修改TimePicker时间间隔

    本篇文章将深入解析TimePicker组件,并介绍如何自定义TimePicker以实现分钟间隔为5分钟的选择。这对于创建特定时间选择场景,如定时任务、闹钟设定等,是非常有用的。 **TimePicker的基本用法** TimePicker是...

    Android 学习(10)TimePicker

    在Android开发中,TimePicker控件是一个非常实用的组件,它允许用户选择小时和分钟,通常用于设置闹钟...在实际项目中,根据需求选择合适的时间显示和交互方式,以及考虑API兼容性,是实现高质量TimePicker功能的关键。

    TimePicker

    如果你需要自定义`TimePicker`的外观,可以通过创建主题或者直接修改`TimePicker`的属性实现。例如,你可以更改数字选择器的颜色、字体大小等。 ### 5. 使用`TimePickerDialog` 除了直接在布局中使用`TimePicker`...

    自定义TimePicker和DataPicker

    本文将深入探讨如何在Android中自定义TimePicker和DatePicker,实现多级联动以及个性化定制。 首先,让我们了解TimePicker和DatePicker的基本用法。TimePicker通常用于让用户选择一个具体的时间,它有两个旋钮,...

    jQuery timepicker addon的完整demo实现

    jQuery Timepicker Addon是一款流行的JavaScript库,用于在网页上创建美观、功能丰富的日期和时间选择器。这个插件是基于广泛使用的jQuery库构建的,它为用户提供了多种自定义选项,使得时间输入变得简单易用。这篇...

    国外用JS实现的timepicker

    时间选择器(Timepicker)是Web开发中常见的一种交互组件,它允许用户以方便的方式选择时间,通常与日期选择器一起使用,形成日期时间选择器。在本案例中,我们关注的是一个用JavaScript(JS)实现的时间选择器,...

    自定义TimePicker 时间段选择控件

    为了满足这样的需求,开发者需要自定义TimePicker来实现时间段选择功能。 自定义TimePicker涉及到对原生TimePicker的扩展和改造,以下是一些关键知识点: 1. **了解原生TimePicker**: 首先,你需要熟悉Android系统...

    自定义TimePicker

    此外,你还可以考虑使用第三方库,如`android-times-square`或`MaterialDateTimePicker`,这些库提供了丰富的自定义选项,能帮助你快速实现所需的TimePicker样式,但仍然可以学习它们的源码来了解自定义过程。...

    JS纯时间选择控件-TimePicker

    本文将深入探讨如何创建一个纯JavaScript实现的时间选择控件——TimePicker,并分析其设计原理、核心功能及其实现方式。 一、设计原理 TimePicker的基本设计思想是模拟操作系统或移动设备上的时间选择器界面,通常...

    jquery-timepicker.js

    《jQuery时间选择器插件——jquery-timepicker.js详解》 在网页开发中,用户界面的交互性和用户体验至关重要,其中日期和时间的选择是一个常见的需求。为了简化这一过程,开发者们经常使用时间选择器插件。本文将...

    numberpicker和timepicker的应用demo

    在Android开发中,`NumberPicker` 和 `TimePicker` 是两个非常重要的组件,它们用于实现用户选择数字和时间的功能。本篇文章将详细讲解这两个组件的使用、特点以及如何在实际项目中应用它们。 首先,`NumberPicker`...

    12-android TimePicker 时间选择器

    关于源码分析,TimePicker组件内部实现了触摸事件处理和滚动逻辑。开发者可以通过查看Android开源项目的源码来深入理解它的工作原理。源码中的关键类可能包括`TimePickerDelegate`、`SpinnerTimePicker`和`...

    Android TimePicker组件使用

    TimePicker的交互事件主要通过监听`OnTimeChangedListener`实现,可以监听到小时和分钟的变化: ```java timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void ...

    timepicker

    jquery插件,timepicker可以制作出华丽的日历效果

    jquery timepicker时分控件

    "jQuery Timepicker"是一个轻量级、高效且易于使用的插件,专为实现小时和分钟选择而设计。只需几行简单的代码,开发者就能在项目中集成这个功能,大大提高了用户体验。 **1. 插件安装与引入** 首先,你需要在项目...

Global site tag (gtag.js) - Google Analytics