35

我正在尝试获取一个看起来像微调器的文本框来激活日期选择器对话框。这是在 ICS 上的 Google 日历应用和联系人应用(用于生日)中完成的。我是否需要使用微调器,如果需要,如何将其输入视图更改为日期选择器?或者如果没有,我如何让文本视图具有通常表示微调器的小三角形?

4

4 回答 4

61

Twaddington 对他的回答的评论实际上是正确的方法。您需要的是创建一个文本视图并应用样式

style="@android:style/Widget.DeviceDefault.Light.Spinner"

然后你可以在文本视图上创建一个点击监听器并使用它来打开一个 DatePickerDialog。这可以如下所示完成:https ://stackoverflow.com/a/8127571/332738 (如果您按照示例,请记住添加默认构造函数,DatePickerDialogFragment以便您的应用程序不会在旋转时崩溃)

于 2012-06-03T22:46:46.987 回答
21

我不知道你是否还需要这个。但在联系人应用程序中,它是通过以下方式实现的:

<Button
    ...
    style="?android:attr/spinnerStyle"
    ... />

这应该适用于所有 Android 版本,因为它从 api 级别 1 开始可用:http: //developer.android.com/reference/android/R.attr.html#spinnerStyle

于 2012-12-23T13:39:23.920 回答
8

我不确定这是否是您所要求的,但您应该能够按照Android 开发者网站上的日期选择器教程进行操作。

此外,DatePickerDatePickerDialog类可能值得一看。

于 2012-02-23T03:58:32.683 回答
0

我更喜欢像谷歌联系人这样的 Spinner 主题。

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:spinnerStyle">@style/AppTheme.Form.Spinner</item>
        <item name="android:spinnerItemStyle">@style/AppTheme.Form.Spinner.Item</item>
    </style>

    <!-- Spinner Styles -->
    <style name="AppTheme.Form.Spinner" parent="Widget.AppCompat.Spinner">
        <item name="android:paddingRight">0dp</item>
        <item name="android:paddingEnd">0dp</item>
    </style>
    <style name="AppTheme.Form.Spinner.Item" parent="Widget.AppCompat.EditText">
        <item name="android:clickable">false</item>
    </style>
</resources>
于 2016-04-07T11:47:30.200 回答