2012-04-27 4 views
0

У меня есть numberpicker:пределы Android NumberPicker на Gingerbread

AlertDialog alertDialog = builder.create(); 
    alertDialog.setTitle("Quantidade"); 
    NumberPicker NP = (NumberPicker)view.findViewById(R.id.npicker); 
    NP.setMaxValue(1000); 
    NP.setMinValue(1); 
    alertDialog.setButton(...); 
    alertDialog.show(); 

Это прекрасно работает на Android 4.0.x, но на Android 2.3.x я получаю

java.lang.NoSuchMethodError: android.widget.NumberPicker.setMaxValue 

Если удалить NP.setMaxValue(1000) и NP.setMinValue(1) , он работает, но ограничения установлены как 0, есть ли способ установить лимиты выбора номера на Android 2.3.x?

ответ

2

В соответствии с документацией NumberPicker (и все его методы) доступны только с уровня API 11 (SDK 3.0). Поэтому, если вам нужна совместимость с 2.3.x, вам нужно иметь собственную реализацию. К счастью, есть один уже имеется here

Редактировать

Интернет не был не так нежен по ссылке выше, и он больше не доступен. Даже альтернативы, предложенные в комментариях, также исчезли. Вам лучше писать свои собственные.

+0

Я уже знал это, но я увидел, что NumberPicker появился на android 2.3.x, поэтому я подумал, что есть какой-то способ изменить пределы. он появляется и отлично работает без каких-либо ошибок, но он подходит только к 0 – Joaolvcm

+1

Как вы можете видеть на веб-сайте, на который указывает ссылка, компонент был доступен до этого, но не был частью публичного API. Поэтому рискованно использовать его, даже если вы можете с ним скомпилировать. – Rajesh

+0

Привет! Почему эта поддержка не поддерживается библиотекой поддержки Google? – Karoly

0

Если вы просматриваете исходный код приложения AOSP Messaging на Github под ветвями-пряниками, есть NumPicker, написанный Роменом Гаем, который должен позволить вам предоставить NumberPicker, по крайней мере, пряничным.

Если вы скопируете исходный код в свой проект, я бы рекомендовал динамически выбирать между этим пользовательским экземпляром NumberPicker и экземпляром фреймворков на основе версии SDK, чтобы использовать все новые функции и дизайн на основе текущего уровня API.

Вот ссылка на исходный код: https://github.com/android/platform_packages_apps_mms/blob/gingerbread-release/src/com/android/mms/ui/NumberPicker.java

Я бы рекомендовал принимать заглянуть вокруг проекта, чтобы получить заполнение, как использовать его.

Смежные вопросы