【问题标题】:How to display latest DatePickerDialog and TimePickerDialog android如何显示最新的 DatePickerDialog 和 TimePickerDialog android
【发布时间】:2014-06-15 16:37:04
【问题描述】:

我想我在创建这些对话框时犯了一些基本错误,因为我找不到关于我遇到的问题的任何问题。

我试图在我的应用程序中显示最新的对话框(时间和日期从 3.0 开始引入),我点击了来自 developer's site 的链接。我的应用程序仅支持 4.0 及更高版本的设备,所以这应该不是问题。

我想,当我点击按钮调用日期或时间选择器时,我会看到类似下面的内容...

但是,这就是我得到的……我认为这是一个旧的日期选择器

触发对话框的按钮的我的 XML..

   <Button
        android:id="@+id/button_end_date"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="showDatePickerDialog"
        android:text="@string/button_enddate" />

对于 java 部分,我添加了来自开发者网站的代码,我想这里不需要。

我做错了什么?

【问题讨论】:

  • 您使用的是哪个安卓版本?第一个日期选择器和时间选择器仅在启用 Holo 主题的设备 (11+) 中可用。要在 HoloEverywhere library。
  • 我想这可能是问题所在。以前该应用程序使用 ABS,现在我只为新设备移植它。我会改变并回复你。
  • Idk,但您不再需要 ABS,appcompat v7 库已经包含 ActionBar 对旧设备的支持。您确定在 Android 11+ 设备上运行该应用吗?
  • 是的,我不需要 ABS,但我还没有从 ABS 更改它。这是一个非常古老的实现,因此我当时使用了 ABS。现在,我什至不需要兼容,因为我只支持 4.0 及更高版本
  • 您可以发布您的styles.xml 文件吗?您的主题有Theme.Holo.* 父母吗?你能检查一下吗?

标签: android android-layout android-datepicker android-timepicker


【解决方案1】:

要使用 Holo 主题,styles.xml 中的应用程序主题必须有 Theme.Holo.* 父级。

喜欢:

<style name="AppTheme" parent="@style/Theme.Holo.Light"> ... </style>
or
<style name="AppTheme" parent="@style/Theme.Holo"> ... </style>

【讨论】:

    【解决方案2】:

    像 android 中的大多数视图一样,选择器依赖于 os 版本。非常简单的 UI 元素(如按钮)在姜饼和 kitkat 版本的操作系统中看起来非常不同。如果您使用的是原生选择器,除了更改样式之外,您几乎无能为力。但是您提到您使用的是 4.0+,所以您得到一个旧对话框似乎有点奇怪,我自己尝试了该代码并且得到了类似的结果。我只能提出一些建议:

    1. 在您的 xml 中添加日期选择器和时间选择器。它不需要是扩展 DialogFragment 的类
    2. 尝试自定义您的主题
    3. DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) // 你也可以为你的日期选择器对话框设置一个主题。 这是我的代码的一些快照: 请注意,默认情况下您没有设置和取消按钮。您只有完成按钮。

    【讨论】:

      【解决方案3】:

      您可能为您的应用程序或活动设置了错误的样式。在我的情况下,我为 Manifest 中的每个活动使用 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 主题。 我现在正在使用自定义应用主题并且它正在工作:

      <style name="AppTheme" parent="@style/Theme.AppCompat">
      <!-- Customize your theme here. -->
      <item name="colorPrimary">@color/colorPrimary</item>
      <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
      <item name="colorAccent">@color/colorAccent</item>
      <item name="android:windowFullscreen">true</item>
      <item name="android:windowNoTitle">true</item>
      </style>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        相关资源
        最近更新 更多