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 ?
Réponses
Trop de publicités?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)
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
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.
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>