2012-04-27 235 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

我會建議服用圍繞項目偷看獲取如何使用它填充。