Android Alarm Clock UI
Solution 1:
The stock alarm clock app is open source, so check it out by yourself.
Preference Layout see here:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/set_alarm">
<CheckBoxPreference android:key="on"
android:title="@string/enable"/>
<Preference android:key="time"
android:title="@string/time"/>
<com.android.alarmclock.AlarmPreference
android:key="alarm"
android:title="@string/alert"
android:ringtoneType="alarm"
android:showDefault="false"
android:showSilent="false" />
<CheckBoxPreference android:key="vibrate"
android:title="@string/alarm_vibrate"/>
<com.android.alarmclock.RepeatPreference
android:key="setRepeat"
android:title="@string/alarm_repeat" />
<EditTextPreference android:key="label"
android:title="@string/label"
android:dialogTitle="@string/label" />
</PreferenceScreen>
Preference activity see here, note that, the links I referenced are not from the head revision.
Some highlights:
- Time is a plain
android.preference.Preference
, backed byTimePickerDialog
. -
Ringtone
is a customized implementation ofandroid.preference.RingtonePreference
. - Repeat is a customized implementation of
android.preference.ListPreferenc
e. - Alarms are managed by a static class com.android.alarmclock.Alarms which use Content Providers store the actual information.
- Holo theme is used by default since Android 4.0, on other Android version, you may see different theme. Note that the app implementation may also changed by different android version or device vendor.
Solution 2:
There is not a particular class for the time preference. Just create a simple Preference, and try to open a TimePickerDialog when the preference is clicked. Change the summary of the preference when time is changed.