问题
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?
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/10352425/android-numberpicker-limits-on-gingerbread