Я сделал проект в Android 2.2, который содержит средство выбора даты и устанавливает для него свойства в соответствии с размером экрана, но когда я установил его в Android 4.0... представление выбора даты включает представление календаря... что делать сделать, чтобы избежать просмотра календаря вместе с средством выбора даты в Android 4.0... ниже приведены изображения средства выбора даты в 2.2 и 4.1
при использовании средства выбора даты в Android 4.0 и выше.. как избежать просмотра календаря
comment
вы можете использовать настраиваемые средства выбора даты. Он будет показывать один и тот же вид во всех версиях. stackoverflow.com/a/8411800/1412308
- person Rajesh Rajaram   schedule 24.09.2012
comment
можно пример кода пожалуйста
- person aravind varma   schedule 24.09.2012
Ответы (4)
Вы можете использовать yourDatepicker.setCalendarViewShown(false);
Этот метод работает в Api >= 11
.
person
Chirag
schedule
24.09.2012
да, я видел эту команду... но не смог заставить ее работать, так как я построил свой проект в версии 2.2... эта команда не работает
- person aravind varma; 24.09.2012
@aravindvarma вы должны разработать проект в Android 4.0 и установить минимальную версию SDK на 8
- person Chirag; 24.09.2012
спасибо, есть ли другой способ сделать это, встроив Android 2.2?
- person aravind varma; 24.09.2012
и поскольку мой проект полностью выполнен в версии 2.2, могу ли я изменить его на версию 4.0 или мне нужно снова написать код?
- person aravind varma; 24.09.2012
@aravindvarma не нужно снова писать код. просто перейди на андроид 4.0
- person Chirag; 24.09.2012
Используйте код Raval. Но чтобы запустить его ниже версии Android 11, сделайте следующее:
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= 11) {
try {
Method m = datePicker.getClass().getMethod("setCalendarViewShown", boolean.class);
m.invoke(datePicker, false);
}
catch (Exception e) {} // eat exception in our case
}
Теперь он работает на всех версиях Android (выше API > 3).
person
tobias
schedule
26.09.2012
я разобрался...спасибо за ответ
- person aravind varma; 28.09.2012
У меня проблема :) Приведенный выше код отлично работает вплоть до API 8. Но на API 4 происходит сбой. Проблема заключается в вызове setCalendarViewShown(), хотя он не вызывается из-за оператора if. Каким-то образом он анализируется при запуске, и приложение вылетает.
- person tobias; 28.09.2012
Для вызова требуется уровень API 11 (текущий минимум 8): android.widget.DatePicker#setCalendarViewShown. Что я делаю не так?
- person Tjaart; 15.10.2012
Интересно, что включение тела оператора if выше приводит к ошибке, которую я получил. Кажется, теперь это работает.
- person Tjaart; 15.10.2012
Если у вас есть экземпляр DatePicker, вы должны написать только это в своем методе `
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= 11) {
yourDatePickerInstance.setCalendarViewShown(false);
}`
person
Петър Петров
schedule
10.07.2013
Чтобы избежать календаря в вашем DatePicker для более поздних API
Добавлять
android:datePickerMode="spinner"
вместо
android:calenderViewShown="false"
в XML макета для виджета DatePicker.
person
bishal
schedule
21.08.2015