Я пытаюсь получить текстовое поле, похожее на счетчик, чтобы активировать диалог выбора даты. Это делается как в приложении Календаря Google, так и в приложении "Контакты" (для даты рождения) на ICS. Нужно ли использовать счетчик, и если да, то каким образом я могу изменить его представление ввода как средство выбора даты? Или, если нет, как мне получить текстовое представление, чтобы иметь маленький треугольник, который обычно указывает на счетчик?
Android spinner с выбором даты, например, приложение Google Calendar
Ответ 1
Комментарий Twaddington на его ответ на самом деле правильный подход. Вам нужно создать текстовое представление и применить стиль
style="@android:style/Widget.DeviceDefault.Light.Spinner"
Затем вы можете создать прослушиватель кликов в текстовом представлении и использовать его для открытия DatePickerDialog. Это можно сделать, как показано здесь: fooobar.com/questions/155066/...
(Если вы следуете примеру, не забудьте добавить конструктор по умолчанию к DatePickerDialogFragment
, чтобы ваше приложение не сработало при повороте)
Ответ 2
Я не знаю, если вам все еще нужно. Но в приложении "Контакты" это достигается с помощью следующего:
<Button
...
style="?android:attr/spinnerStyle"
... />
Это должно работать над всеми версиями Android, поскольку оно доступно с уровня api 1: http://developer.android.com/reference/android/R.attr.html#spinnerStyle
Ответ 3
Я не уверен, что это то, о чем вы просите, но вы можете следить за учебником по дате выбора на веб-сайте разработчика Android.
Кроме того, классы DatePicker и DatePickerDialog могут быть полезны.
Ответ 4
Я бы предпочел ниже тему для 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>