Android Alarm Clock UI

大兔子大兔子 提交于 2019-11-26 04:54:38

问题


\"enter

I am trying to figure out how the UI was designed for the Android Alarm Clock app. This appears to be using the Holo Dark Theme.

The screenshot included is the Create/Edit Alarm Activity screen. It looks similar to Android Settings. Is this case? Because the \"Turn the alarm on\" & \"Vibrate\" rows look like ChexboxPreferences. The \"Ringtone\" row looks like a RingtonePreference. What about the \"Time\" row?

As @eric mentioned in the comments to one of the answers below, I am trying to recreate a similar interface to the alarm clock app. I do not want to send an intent to start the Alarm Manager from my app.

What about the \"Label\" row? That functions a lot like an EditText view. Can you have a combination of Views and Preferences inside a PreferenceScreen xml tag?

Also the ActionBar has a vertical pipe, I am not sure how this was created but is the \"Done\" view an ImageButton?

I am not completely convinced that it is a combination of Preferences, since the Alarm app can have multiple alarms and not just one alarm. If there are multiple alarms and you don\'t use multiple SharedPreferences files, it would naturally make sense to create a content provider to store the information related to multiple alarms.


回答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 by TimePickerDialog.
  • Ringtone is a customized implementation of android.preference.RingtonePreference.
  • Repeat is a customized implementation of android.preference.ListPreference.
  • 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.



回答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.




回答3:


u want to put this below line of code on list item click (time click)

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));


来源:https://stackoverflow.com/questions/13523350/android-alarm-clock-ui

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!