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:
Any help would be appreciated.
Unfortunately, you can't style it. The styles and styling attributes for NumberPicker are not present in the public API, therefore you can't set them and change the default look. You can only select between light and dark theme. As a solution I would suggest to use android-numberpicker library instead.
Implementing Horizontal picker in Android using RecyclerView and LinearLayoutManager with kotlin. Its a number picker which has the below functionality. >middle item will be selected, clicking on item will also be selected.
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.
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!
Change the height of the NumberPicker to 200dp. It's simply because it can't display the picker in the height you specified (48dp), because of this it messes up the rendering calculations.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With