Gingerbread上的Android NumberPicker限制

时间:2012-04-27 14:22:43

标签: java android widget android-2.3-gingerbread

我有一个数字选择器:

  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)NP.setMinValue(1),它可以正常工作,但限制设置为0,有没有办法在Android 2.3.x上设置数字选择器限制?

2 个答案:

答案 0 :(得分:2)

根据文档,NumberPicker(及其所有方法)仅可从API Level 11(SDK 3.0)获得。因此,如果您想要与2.3.x兼容,则需要拥有自己的实现。幸运的是,已有一个here

修改

互联网在上面的链接上并不是那么温和,它已不再可用。甚至评论中提出的备选方案也已消失。你最好自己写。

答案 1 :(得分:0)

如果你在Github上查看姜饼释放分支下的AOSP Messaging应用程序的源代码,那么有一个由Romain Guy编写的NumPicker,它应该允许你为至少姜饼提供一个NumberPicker。

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

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

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