Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android上显示最新的DatePickerDialog和TimePickerDialog_Android_Android Layout_Android Datepicker_Android Timepicker - Fatal编程技术网

如何在android上显示最新的DatePickerDialog和TimePickerDialog

如何在android上显示最新的DatePickerDialog和TimePickerDialog,android,android-layout,android-datepicker,android-timepicker,Android,Android Layout,Android Datepicker,Android Timepicker,我想我在创建这些对话框时犯了一些基本的错误,因为我找不到关于我所遇到的问题的任何问题 我试图在我的应用程序中显示最新的对话框(时间和日期从3.0引入),并且我从中跟踪了链接。我的应用程序只支持4.0及以上版本的设备,所以这应该不是问题 我想,当我点击按钮调用日期或时间选择器时,我会看到下面这样的东西 但是,这是我得到的。。。我认为这是一个老的日期选择 触发对话框的My XML for按钮 <Button android:id="@+id/button_end_da

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

我试图在我的应用程序中显示最新的对话框(时间和日期从3.0引入),并且我从中跟踪了链接。我的应用程序只支持4.0及以上版本的设备,所以这应该不是问题

我想,当我点击按钮调用日期或时间选择器时,我会看到下面这样的东西

但是,这是我得到的。。。我认为这是一个老的日期选择

触发对话框的My XML for按钮

   <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部分,我添加了来自开发人员站点的代码,我想这里不需要这些代码


我做错了什么?

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

  • 在xml本身中添加日期选择器和时间选择器。它不需要是扩展DialogFragment的类
  • 尝试自定义您的主题
  • DatePickerDialog(上下文上下文、int主题、DatePickerDialog.OnDateSetListener回调、int年、int月、int月)
    //您也可以为日期选择器对话框设置主题。 下面是我的代码的一些快照: 请注意,默认情况下没有设置和取消按钮。你只做了一个按钮

  • 要使用Holo主题,您在
    style.xml
    中的应用程序主题必须具有
    Theme.Holo.*
    parent

    比如:

    。。。
    或
    ... 
    
    您可能为应用程序或活动设置了错误的样式。在我的例子中,我为清单中的每个活动使用了一个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>
    
    
    @颜色/原色
    @颜色/原色暗
    @颜色/颜色重音
    真的
    真的
    
    您使用的是什么Android版本?第一个日期选择器和时间选择器仅适用于支持全息主题的设备(11+)。要在<11台设备上使用Holo主题,可以使用
    HoloEverywhere
    库。我想这可能就是问题所在。以前该应用程序使用ABS,现在我只将其移植到新设备上。我会更改并返回给您。Idk,但您不再需要ABS,
    appcompat v7
    库已经包含了对旧设备的
    ActionBar
    支持。你确定你是在安卓11+设备上运行这个应用程序吗?是的,我不需要ABS,但我还没有把它改成ABS。这是一个非常古老的实现,因此当时我使用了ABS。现在,我甚至不需要compat,因为我只支持4.0及以上版本。你能发布你的
    styles.xml
    文件吗?你的主题有
    Theme.Holo.*
    parent?你能检查一下这个吗?
    <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>