带有日期选择器的Android微调器,如Google Calendar应用

时间:2012-02-23 03:53:11

标签: android android-4.0-ice-cream-sandwich android-spinner android-datepicker

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

4 个答案:

答案 0 :(得分:61)

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

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

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

答案 1 :(得分:21)

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

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

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

答案 2 :(得分:8)

我不确定这是不是您要问的,但您应该能够关注Android开发者网站上的Date Picker tutorial

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

答案 3 :(得分: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>