вторник, 11 мая 2010 г.

Использование NumberPicker и кастомизация его внешнего вида

Внимание. Данное решение с NumberPicker не работает на прошивках 2.2 и выше. Другое решение - взять класс NumberPicker из исходных кодов Android и использовать его. Постараюсь переписать статью в ближайшее время.

Наверно многие из вас использовали такие виджеты, как DatePicker и TimePicker. Но функциональность этих виджетов ограничена возможностью выбора даты и времени, но мне захотелось большего - использовать данную функциональность для выбора любого числа в заданном диапазоне (как в контроле NumericUpDown в C#). Такая возможность существует. Виджеты DatePicker и TimePicker основаны на системном виджете NumberPicker, который вы не можете использовать из коробки. Для его использования потребуется написать небольшое количество кода.

Для начала добавим NumberPicker в наш главный layout, xml-код выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.android.internal.widget.NumberPicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/numTestNumberPicker"
android:layout_centerInParent="true">
</com.android.internal.widget.NumberPicker>
</RelativeLayout>