2

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

我正在尝试在我的应用程序中显示最新的对话框(从 3.0 引入的时间和日期),并且我点击了来自开发者网站的链接。我的应用程序仅支持 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 部分,我添加了来自开发人员站点的代码,我想这里不需要。

我究竟做错了什么?

4

3 回答 3

1

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

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

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

喜欢:

<style name="AppTheme" parent="@style/Theme.Holo.Light"> ... </style>
or
<style name="AppTheme" parent="@style/Theme.Holo"> ... </style>
于 2014-06-15T17:29:33.653 回答
0

您可能为您的应用程序或活动设置了错误的样式。在我的情况下,我为 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>
于 2015-11-24T20:28:14.313 回答