2013-05-18 6 views
5

मैं एंड्रॉइड ऐप के विकास में हूं .. असल में मुझे संपादन संपादन के लिए न्यूनतम और अधिकतम मूल्य निर्धारित करने की आवश्यकता है, मेरा न्यूनतम मान 18 है और अधिकतम 65 है। मैंने इसका सटीक कोड कियाएंड्रॉइड एडिटेक्स्ट मिनम और अधिकतम मूल्य

package com.test; 

import android.text.InputFilter; 
import android.text.Spanned; 

public class InputFilterMinMax implements InputFilter { 

    private int min, max; 

    public InputFilterMinMax(int min, int max) { 
     this.min = min; 
     this.max = max; 
    } 

    public InputFilterMinMax(String min, String max) { 
     this.min = Integer.parseInt(min); 
     this.max = Integer.parseInt(max); 
    } 

    @Override 
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 
     try { 
      int input = Integer.parseInt(dest.toString() + source.toString()); 
      if (isInRange(min, max, input)) 
       return null; 
     } catch (NumberFormatException nfe) { }  
     return ""; 
    } 

    private boolean isInRange(int a, int b, int c) { 
     return b > a ? c >= a && c <= b : c >= b && c <= a; 
    } 
} 




EditText et = (EditText) findViewById(R.id.myEditText); 
et.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "12")}); 

मैं 1 और 12 के बीच और कहा कि मूल्य के लिए इस कोड को केवल इस साइट इधर-उधर ... Is there a way to define a min and max value for EditText in Android? वास्तव में इस मूल्यों के लिए मिला है यह ठीक काम कर रहा है, लेकिन जब मैं अपने मूल्य 18 और 45 के लिए बदल यह नहीं है काम कर रहा है ... क्या कोई मेरी मदद कर सकता है .. इसके लिए मुझे क्या परिवर्तन करना है ...

+0

मूल्यों प्रवेश करने का प्रयास या डीबगर mMode का प्रयास करें: रेखा सीई। –

+1

क्या आपने दिए गए लिंक में itsrajesh4uguys से जवाब देने का प्रयास किया है ... यह समाधान अच्छा है और मेरे लिए काम किया है ... –

+0

टिप्पणी के लिए धन्यवाद जीट ... मुझे कोशिश करें .. – user2223317

उत्तर

3

आपको प्रतिलिपि बनाना चाहिए Can someone help me with the parameters to the Android InputFilter "filter" method? (plus regex) पर

int input = Integer.parseInt(dest.toString() + source.toString()); 

साथ

int input = Integer.parseInt(source.toString()); 

देखो को समझने के लिए क्यों

+0

धन्यवाद comroiding के लिए androidcompile ... मुझे – user2223317

+0

नहीं .. .. काम नहीं कर रहा है ... क्योंकि जब मैं दो नंबर 18 और 65 दर्ज करता हूं तो यह काम नहीं कर रहा है .. लेकिन यह 1-9 के बीच पहली संख्या के लिए ठीक काम करता है यह पूर्व के लिए काम नहीं करेगा यदि न्यूनतम मान 10 है तो यह काम नहीं करेगा ... हम पहले अक्षर 1 टाइप करने में सक्षम नहीं होंगे ... यह समस्या है .. – user2223317

+1

मुझे लगता है कि आपके पास न्यूनतम सीमा हमेशा सेट होनी चाहिए 0. अन्यथा, यदि आप चाहते हैं कि संख्या 40 और 120 के बीच है, उदाहरण के लिए, तो यदि आप नंबर 100 चाहते हैं और आप '1', '0', '0' दबाकर शुरू करते हैं तो कोई भी नंबर स्वीकार नहीं किया जाएगा, कोई भी सही फ़िल्टर होगा पहले अंक को स्वीकार भी नहीं करें क्योंकि यह 40 – EyalBellisha

संबंधित मुद्दे