Максимальный диапазон DatePicker для конкретного устройства Android? - PullRequest
0 голосов
/ 01 марта 2012

Виджет DatePicker в Android имеет диапазон возможных значений для каждого поля (день, месяц, год). Минимальное значение можно установить с помощью атрибута «android: startYear», максимальное значение с помощью «android: endYear».

Но диапазон возможных значений зависит от устройства? Я имею в виду, можете ли вы установить минимальное значение для года равным «0000» или есть устройства, которые не поддерживают это значение для поля года в DatePicker?

Ответы [ 3 ]

0 голосов
/ 01 марта 2012

У нас была дискуссия здесь по поводу выбора даты.На самом деле, DatePicker имеет минимальное и максимальное значение.Например, по умолчанию для AOSP 2.3 это 01 января 1970 года. Но вы можете исправить это поведение, как описано в обсуждении.Более того, похоже, что эта проблема решена в новых версиях Android.Тем не менее, эта функция все еще может зависеть от устройства, поэтому будьте осторожны!

0 голосов
/ 01 марта 2012

Если немного «исследовать» источник Android, становится очевидным, что значениями по умолчанию «startYear» и «endYear» являются «1900» и «2100». Эти значения могут быть перезаписаны любым целочисленным значением.

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/DatePicker.java#135

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/DatePicker.java#44

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/com/android/internal/widget/NumberPicker.java#154

0 голосов
/ 01 марта 2012

Это проблемы, которые вы получаете с Android, и их трудно решить. У меня нет точного ответа на вашу конкретную проблему, и я сомневаюсь, что вы когда-нибудь найдете надежную документацию по этому вопросу. Однако я столкнулся с такими же проблемами, и вот несколько советов:

  • Перейдите к javadoc API и посмотрите на минимальный уровень API справа от описания функции / свойства. Вы можете использовать if и переключиться для проверки версии устройства с помощью android.os.Build.VERSION.SDK_INT.
  • Создайте несколько эмуляторов с разными версиями и протестируйте свой код.
  • Купите несколько реальных устройств.
  • Установите аварийный репортер, такой как acra , удаленно регистрируйте исключения, исправляйте их и публикуйте новые версии.
...