35 votes

Tourniquet Android avec sélecteur de date, comme l'application Google Calendar

J'essaie de faire en sorte qu'une zone de texte qui ressemble à une roulette active une boîte de dialogue de sélection de date. Cela se fait à la fois dans l'application Google Calendar et dans l'application Contacts (pour la date de naissance) sur ICS. Dois-je utiliser une roulette et, si c'est le cas, comment puis-je changer sa vue d'entrée pour en faire un sélecteur de date ? Si ce n'est pas le cas, comment faire pour qu'une vue de texte ait le petit triangle qui indique généralement une tournette ?

61voto

codinguser Points 3979

Le commentaire de Twaddington sur sa réponse est en fait la bonne approche. Ce dont vous avez besoin, c'est de créer une vue de texte et d'appliquer le style

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

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

21voto

Scirocco Points 1591

Je ne sais pas si vous en avez encore besoin. Mais dans l'application Contacts, on peut l'obtenir de la manière suivante :

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

Cette fonction devrait fonctionner sur toutes les versions d'Android, car elle est disponible depuis le niveau 1 de l'API : http://developer.Android.com/reference/Android/R.attr.html#spinnerStyle

8voto

twaddington Points 6525

Je ne suis pas sûr que ce soit ce que vous demandez, mais vous devriez être en mesure de suivre les Tutoriel sur le sélecteur de date sur le site Web des développeurs Android.

En outre, le DatePicker y DatePickerDialog pourrait valoir le coup d'œil.

0voto

Dipen Dedania Points 828

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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X