2013-03-28 7 views
10

में न्यूनतम मान और अधिकतम मूल्य के बीच ब्लॉक संक्रमण मैं एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं। कहीं अंदर, मैं NumberPicker विजेट प्रदर्शित कर रहा हूं।संख्यापिकर

मैं न्यूनतम मूल्य और अधिकतम मूल्य के बीच संक्रमण को कैसे अक्षम कर सकता हूं?

मैं क्या मतलब है, मैं एक संख्या पिकर उपयोगकर्ता कर सकते हैं जल्दी से उपयोग कर रहा हूँ, 0 की एक न्यूनतम मूल्य और 9999 यह इस तरह दिखता है की एक अधिकतम मूल्य के साथ,

number picker

इस तरह, 0 से 99 99 तक कूदने के लिए विजेट को घुमाएं। मुझे यह व्यवहार नहीं चाहिए। संख्या पिकर विजेट अब यह एक बंद सर्कल की तरह दिखता है, और मैं यह देखने की कोशिश कर रहा हूं कि मैं न्यूनतम और अधिकतम मूल्य के बीच सर्कल को कैसे तोड़ सकता हूं, ताकि यह न्यूनतम मान और अधिकतम मूल्य से ऐसा दिखाई दे:

number picker minimum value number picker maximum value

मैं यह कैसे प्राप्त कर सकते हैं?

मैं क्या कोशिश की है:

  • मैं NumberPicker एपीआई में हर जगह खोजा, ऐसा प्रतीत नहीं होता की तरह यह कुछ ऐसा है एक बस एक विधि का उपयोग कर सेट कर सकते हैं।
  • मुझे लगता है कि मैं न्यूनतम मूल्य से पहले और अधिकतम मान के बाद खाली तार जोड़ने के लिए विधि setDisplayedValues(String[] displayedValues) विधि का उपयोग कर सकता हूं, ताकि न्यूनतम मान से पहले या अधिकतम मान के बाद कोई मान प्रदर्शित न हो, उपयोगकर्ता उपयोगकर्ता अभी भी उन्हें पिछले या काम करने में सक्षम हो: खाली मूल्य का चयन करें।

कोई भी विचार? क्या मुझे अपने हाथों को गंदे और विजेट कार्यान्वयन में खोदना होगा? शायद टच श्रोता के अंदर?

उत्तर

5

क्या यह setWrapSelectorWheel(false) (from the API) नहीं है?

+0

कोई यह नहीं है। – Leeeeeeelo

+0

इसके साथ क्या गलत है? यदि आप इसे 'झूठी' पर सेट करते हैं तो आप न्यूनतम से अधिकतम मूल्य या इसके विपरीत नहीं जा सकते हैं। – sgdesmet

+0

यह समाधान है, बस सुनिश्चित करें कि सेट सेट WrapSelectorWheel (झूठी) विधि को पिकर मानों को प्रारंभ करने के बाद कहा जाता है। – SergioM

10

आपको नंबर पिकर पर setWrapSelectorWheel(false) पर कॉल करना होगा। सावधान रहें कि पर से पहले setMinimumValue(...) और setMaximumValue(...)से पहले सावधान रहें। यदि आप अन्यथा करते हैं तो यह बस काम नहीं करेगा।

मेरी तरह, आप xml के माध्यम से ऐसा करने का एक तरीका ढूंढ रहे हैं, लेकिन उस समय कोई रास्ता नहीं है।

2

जैसा कि बताया गया है, setWrapSelectorWheel (false) चाल करता है, इसलिए प्रस्तावित उत्तरों में से एक स्वीकार किया जाना चाहिए।

सामान्य में, कॉल की इस आदेश काम:

picker.setMinValue(0); 
picker.setMaxValue(stringValuesArray.length - 1); 
picker.setDisplayedValues(stringValuesArray); 
picker.setValue(defaultValue); 
picker.setWrapSelectorWheel(false); 
+0

धन्यवाद, यह मेरे लिए काम करता है! – codezjx