Spinner Android avec date picker, comme Google Calendar app

j'essaie d'obtenir une boîte de texte qui ressemble à un spinner pour activer une boîte de dialogue date picker. Cela se fait à la fois dans L'application Google Calendar et dans L'application Contacts (pour birthdate) sur ICS. Est-ce que j'ai besoin d'utiliser un spinner, et si c'est le cas, comment puis-je changer sa vue d'entrée pour choisir une date? Ou si non, comment obtenir une vue texte pour avoir le petit triangle qui indique habituellement un spinner?

34
demandé sur Dash 2012-02-23 07:53:11

4 réponses

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

alors vous pouvez créer un écouteur de clic sur la vue de texte et l'utiliser pour ouvrir un DatePickerDialog. Cela peut être accompli comme montré ici:https://stackoverflow.com/a/8127571/332738 (Si vous suivez l'exemple, n'oubliez pas d'ajouter un constructeur par défaut à DatePickerDialogFragment de sorte que votre application ne bloque pas sur la rotation)

61
répondu codinguser 2017-05-23 11:46:39

je ne sais pas si vous avez encore besoin de cela. Mais dans L'application Contacts, il est réalisé avec ce qui suit:

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

cela devrait fonctionner sur toutes les versions Android, car il est disponible depuis api Niveau 1: http://developer.android.com/reference/android/R.attr.html#spinnerStyle

20
répondu Scirocco 2012-12-23 13:39:23

Je ne suis pas sûr que ce soit ce que vous demandez, mais vous devriez être en mesure de suivre le tutorial Date Picker

aussi, le Correcteur de données et DatePickerDialog

8
répondu twaddington 2012-02-23 03:58:32

je préférerais le thème ci-dessous pour Spinner comme Google contacts.

<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>
0
répondu Dipen Dedania 2016-04-07 11:47:30