Android spinner с выбором даты, например, приложение Google Calendar

Я пытаюсь получить текстовое поле, похожее на счетчик, чтобы активировать диалог выбора даты. Это делается как в приложении Календаря Google, так и в приложении «Контакты» (для даты рождения) на ICS. Нужно ли использовать счетчик, и если да, то как мне изменить его представление ввода как сборщика дат? Или, если нет, как мне получить текстовое представление, чтобы иметь маленький треугольник, который обычно указывает на счетчик?

Solutions Collecting From Web of "Android spinner с выбором даты, например, приложение Google Calendar"

Замечание Тваддингтона о его ответе на самом деле является правильным подходом. Вам нужно создать текстовое представление и применить стиль

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

Затем вы можете создать прослушиватель кликов в текстовом представлении и использовать его для открытия DatePickerDialog. Это может быть выполнено, как показано здесь: https://stackoverflow.com/a/8127571/332738 (Если вы следуете примеру, не забудьте добавить конструктор по умолчанию в DatePickerDialogFragment чтобы ваше приложение не DatePickerDialogFragment при повороте)

Я не знаю, нужна ли вам эта проблема. Но в приложении «Контакты» это достигается следующим образом:

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

Это должно работать над всеми версиями Android, поскольку оно доступно с первого уровня api: http://developer.android.com/reference/android/R.attr.html#spinnerStyle

Я не уверен, что это то, о чем вы просите, но вы должны быть в состоянии следить за учебником Date Picker на веб-сайте разработчика Android.

Кроме того, классы DatePicker и DatePickerDialog могут оказаться полезными .

Я бы предпочел ниже тему для Spinner, как google контакты.

 <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>