【问题标题】:Android Alarm Clock UI安卓闹钟界面
【发布时间】:2012-11-11 11:31:33
【问题描述】:

我试图弄清楚 UI 是如何为 Android 闹钟应用程序设计的。 这似乎正在使用 Holo Dark Theme。

包含的屏幕截图是创建/编辑警报Activity 屏幕。它看起来类似于Android Settings。是这种情况吗?因为“打开警报”和“振动”行看起来像 ChexboxPreferences。 “铃声”行看起来像 RingtonePreference。 “时间”行呢?

正如@eric 在 cmets 中提到的以下答案之一,我正在尝试重新创建与闹钟应用类似的界面。我不想发送从我的应用程序启动警报管理器的意图。

“标签”行呢?这很像EditText 视图。您可以在PreferenceScreen xml 标记中同时使用ViewsPreferences 吗?

ActionBar 也有一个垂直管道,我不确定它是如何创建的,但“完成”视图是 ImageButton 吗?

我不完全相信它是首选项的组合,因为闹钟应用程序可以有多个闹钟,而不仅仅是一个闹钟。如果有多个警报并且您不使用多个SharedPreferences 文件,那么创建一个内容提供程序来存储与多个警报相关的信息自然是有意义的。

【问题讨论】:

  • 嘿伙计,你有安卓闹钟的代码吗,我想集成到我的其他应用中

标签: android user-interface settings android-preferences alarm


【解决方案1】:

股票闹钟应用是open source,请自行查看。

偏好布局见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>

偏好活动见here,请注意,我引用的链接不是来自头部修订版。

一些亮点:

  • 时间是一个简单的android.preference.Preference,由TimePickerDialog 支持。
  • Ringtoneandroid.preference.RingtonePreference 的自定义实现。
  • Repeat 是 android.preference.ListPreference 的自定义实现。
  • 警报由静态类 com.android.alarmclock.Alarms 管理,该类使用 Content Providers 存储实际信息。
  • Android 4.0 以后默认使用 Holo 主题,在其他 Android 版本上,您可能会看到不同的主题。请注意,应用程序的实现也可能会因不同的 android 版本或设备供应商而有所不同。

【讨论】:

  • 嘿伙计,你有安卓闹钟的代码吗,我想集成到我的其他应用中
【解决方案2】:

时间偏好没有特定的类。 只需创建一个简单的首选项,并在单击首选项时尝试打开 TimePickerDialog。更改时间时更改首选项的摘要。

【讨论】:

  • 感谢@faylon 提供有关TimePickerDialog 的信息。我知道这个班级并同意你的看法。但是 UI 中的所有其他行呢?它们都只是偏好吗?
  • @toobsco42。我觉得只有 RingtonePreference 比较特别,其他都是 Preference 和 ChexboxPreferences。
  • 好吧,这是有道理的。 “标签”行呢?它的功能很像 EditText 视图。您可以在 PreferenceScreen xml 标记中组合 Views 和 Preferences 吗? ActionBar 也有一个垂直管道,我不确定它是如何创建的,但“完成”视图是 ImageButton 吗?
  • 用你的话来说,标签行就像一个 EditTextPreference。实际上一个Preferences就是两个TextView(title & summary)加上一个icon,布局是com.android.internal.R.layout.preference。你可以用它做任何事情。您可以使用 CheckBoxPreference 之类的高级首选项,或者仅创建一个类来扩展 Preference 以防您有特殊需要。
  • 但是“标签”行在单击时不会打开对话框,而是将光标移到那里,类似于 EditText 视图。
【解决方案3】:

你想把这行代码放在列表项点击(时间点击)上

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

【讨论】:

  • 这不是 OP 所要求的。他想重新创建该界面,而不是从他的应用程序中打开警报管理器。
  • 是的,@Eric 说的是正确的。我正在尝试重新创建与闹钟应用程序类似的界面。我不想发送从我的应用程序启动警报管理器的意图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多