Java – How to use NumberPicker widget Android 4.0

androidandroid-4.0-ice-cream-sandwichandroid-widgetjava

I am trying to configure the NumberPicker widget using API 14. There are very little tutorials or instructions online that would help me set it up properly.

so far I have the following code implemented in main.xml:

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

and in the main activity in the onCreate() method:

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);

When running my application in the emulator the numberpicker widget does not get displayed as expected. The button's are not left and right but up and down. And the values overlay each other instead of one number being displayed. Clicking an arrow crashes the application.

EDIT

Made changes as described below in first answer however the numberpciker is not usable, please see screenshot:

Numberpicker screenshot

Any help would be appreciated.

Best Solution

Try commenting out the for loop and the line np.setDisplayedValues(nums);. The NumberPicker should display the values for you automatically.

You might also consider changing the width to android:layout_width="wrap_content" if you want the NumberPicker to display your values horizontally.


EDIT:

It appears that you cannot change NumberPicker (see this link). The issue is that you are trying to change the android:orientation attribute... but this is an inherited attribute from the LinearLayout class. You might be stuck with a vertically displaying NumberPicker unless you customize your own. Sorry!