0

我有一个数字选择器:

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

这在 Android 4.0.x 上运行良好,但在 Android 2.3.x 上我得到

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

如果我删除NP.setMaxValue(1000)and NP.setMinValue(1),它可以工作,但限制设置为 0,有没有办法在 Android 2.3.x 上设置数字选择器限制?

4

2 回答 2

2

根据文档,NumberPicker(及其所有方法)仅可从 API 级别 11 (SDK 3.0) 获得。所以如果你想兼容 2.3.x,你需要有自己的实现。幸运的是这里已经有一个

编辑

互联网对上面的链接没有那么温和,它不再可用。甚至评论中建议的替代方案也消失了。你最好自己写。

于 2012-04-27T14:33:23.890 回答
0

如果您在 Github 上的 AOSP 消息传递应用程序的源代码中查看姜饼发布分支下,有一个由 Romain Guy 编写的 NumPicker,它应该允许您为至少姜饼提供一个 NumberPicker。

如果您将源代码复制到您的项目中,我建议您在自定义 NumberPicker 实例和基于 SDK 版本的框架实例之间动态选择,以便使用基于当前 API 级别的所有新功能和设计。

这是源代码的链接:https ://github.com/android/platform_packages_apps_mms/blob/gingerbread-release/src/com/android/mms/ui/NumberPicker.java

我建议您浏览一下该项目以了解如何使用它。

于 2016-08-04T15:51:05.287 回答