Как использовать виджет NumberPicker для Android 4.0 - PullRequest
7 голосов
/ 14 февраля 2012

Я пытаюсь настроить виджет NumberPicker, используя API 14 . В Интернете очень мало учебных пособий или инструкций, которые помогут мне правильно их настроить.

пока у меня есть следующий код, реализованный в main.xml :

<NumberPicker
    android:id="@+id/numberPicker1"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:orientation="horizontal" />

и в основном действии в методе onCreate ():

NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker1);
    String[] nums = new String[20];
    for(int i=0; i<nums.length; i++)
           nums[i] = Integer.toString(i);

    np.setMinValue(1);
    np.setMaxValue(20);
    np.setWrapSelectorWheel(false);
    np.setDisplayedValues(nums);
    np.setValue(1);

При запуске моего приложения в эмуляторе виджет средства выбора номера не отображается должным образом. Кнопки не влево и вправо, а вверх и вниз. И значения перекрывают друг друга вместо того, чтобы отображаться одно число. Нажатие на стрелку приводит к сбою приложения.

EDIT

Внесены изменения, как описано ниже в первом ответе, однако numberpciker не используется, см. Скриншот:

Numberpicker screenshot

Любая помощь будет оценена.

Ответы [ 2 ]

6 голосов
/ 14 февраля 2012

Попробуйте закомментировать цикл for и строку np.setDisplayedValues(nums);.NumberPicker должен автоматически отображать значения для вас.

Вы можете также рассмотреть возможность изменения ширины на android:layout_width="wrap_content", если вы хотите, чтобы NumberPicker отображал ваши значения по горизонтали.


EDIT:

Похоже, вы не можете изменить NumberPicker (см. Эту ссылку ).Проблема в том, что вы пытаетесь изменить атрибут android:orientation ... но это унаследованный атрибут класса LinearLayout.Возможно, вы застряли с вертикальным отображением NumberPicker, если не настроите свой собственный.Извините!

2 голосов
/ 09 мая 2012

Измените высоту NumberPicker на 200dp. Это просто потому, что он не может отображать средство выбора на указанной вами высоте (48 dp), из-за этого он портит вычисления рендеринга.

...