简体   繁体   中英

Android NumberPicker limits on Gingerbread

I have a numberpicker:

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

This works fine on Android 4.0.x, but on Android 2.3.x I get

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

If I remove NP.setMaxValue(1000) and NP.setMinValue(1) , it works but the limits are set as 0, is there any way to set the number picker limits on Android 2.3.x?

As per the documentation, NumberPicker (and all its methods) are available only from API Level 11 (SDK 3.0). So if you want compatibility with 2.3.x, you need to have your own implementation. Luckily there is one already available here

Edit

The Internet has been not so gentle on the link above and it is no longer available. Even the alternatives suggested in the comments are also gone. You are better off writing your own.

If you view the source code for the AOSP Messaging app on Github under the branch gingerbread-release, there is a NumPicker, written by Romain Guy that should allow you provide a NumberPicker to at least gingerbread.

If you copy the source code into your project, I would recommend dynamically choosing between that custom NumberPicker instance and the frameworks instance based on SDK version in order to use all of the new features and design based on the current API level.

Here is a link to the source code: https://github.com/android/platform_packages_apps_mms/blob/gingerbread-release/src/com/android/mms/ui/NumberPicker.java

I would recommend taking a peek around the project to get a fill of how to use it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM