2012-04-27 67 views
0

的Android NumberPicker限制我有一个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(); 

这适用于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

根据文档,NumberPicker(及其所有方法)仅适用于API级别11(SDK 3.0)。所以如果你想兼容2.3.x,你需要有你自己的实现。幸运的是一个已经存在here

编辑

互联网一直是上面的链接没有那么温柔,它不再可用。即使评论中提出的替代方案也没有了。你最好写自己的。

+0

我已经知道,但我看到NumberPicker显示在android 2.3.x上,所以我认为有任何方法来改变限制。他出现并且没有任何错误地正常工作,但他只到0 – Joaolvcm 2012-04-27 14:36:36

+1

正如你从网站上看到的链接指向的那样,组件在之前可用,但不是公共API的一部分。所以即使你可以编译它也是有风险的。 – Rajesh 2012-04-27 14:39:55

+0

你好! 为什么Google支持库不支持这些错误? – Karoly 2012-09-18 08:08:36

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

我会建议服用围绕项目偷看获取如何使用它填充。