Sunday 15 January 2012

android - onFocusChange function is not working for custom editText -


मैंने एक EditText को अनुकूलित किया है, अब जब मैं onFocusChanged () का उपयोग करने का प्रयास करता हूं < / कोड> फ़ंक्शन में यह देखें टी काम नहीं करता है यह क्यों हो रहा है?

मेरे कस्टमाइज़ किए गए EditText के लिए कोड:

  & lt; EditText एंड्रॉइड: id = "@ + id / clearable_edit" एंड्रॉइड: layout_width = "fill_parent" एंड्रॉइड: layout_height = "wrap_content" एंड्रॉइड: paddingRight = "35dip" एंड्रॉइड: singleLine = "true" / & gt; & LT; बटन एंड्रॉयड: आईडी = "@ + id / clearable_button_clear" एंड्रॉयड: layout_width = "30dip" एंड्रॉयड: layout_height = "30dip" एंड्रॉयड: layout_alignParentRight = "true" एंड्रॉयड: layout_centerInParent = "true" एंड्रॉयड: layout_marginRight = "5dip" एंड्रॉयड : गुरुत्वाकर्षण = "केंद्र" एंड्रॉइड: टेक्स्ट = "@ स्ट्रिंग / क्रॉस" एंड्रॉइड: टेक्स्ट साइज़ = "12 एसपी" / & gt;   

और जावा है:

  सार्वजनिक वर्ग ClearableEditText फैली RelativeLayout लागू करता OnFocusChangeListener {LayoutInflater inflater = बातिल; संपादन टेक्स्ट संपादन_टेक्स्ट; बटन btn_clear; निजी साफ़ करने योग्य संपादन संपादन पाठ; सार्वजनिक साफ़ करने योग्य एडिट टेक्स्ट (संदर्भ संदर्भ, अंतिम स्पष्टयोग्य संपादन पाठ संपादन) {सुपर (संदर्भ); लॉग। E ("===============", "प्रवेश किया"); This.editText = editText; } @Override सार्वजनिक शून्य onFocusChange (देखें वी, बूलियन hasFocus) {// TODO स्वत: निर्मित विधि ठूंठ Log.e ( "===============", "हो गया"); टोस्ट। मेकटेक्स्ट (getContext (), "डीएलएएनएसएजलैक्सज", टोस्ट। एलएनएनजीएचआईएचओआरटी)। दिखाएं (); } सार्वजनिक साफ़ करने योग्य संपादन पाठ (संदर्भ संदर्भ, AttributeSet attrs, int defStyle) {सुपर (संदर्भ, attrs, defStyle); अगर (! है InEditMode ()) initViews (); } सार्वजनिक साफ़ करने योग्य एडिट टेक्स्ट (संदर्भ संदर्भ, AttributeSet attrs) {सुपर (संदर्भ, एटर्स); // TODO Auto-generated constructor stub यदि (! IsInEditMode ()) initViews (); } सार्वजनिक साफ़णीय संपादन पाठ (संदर्भ संदर्भ) {सुपर (संदर्भ); // TODO Auto-generated constructor stub यदि (! IsInEditMode ()) initViews (); } शून्य initViews () {// TODO स्वत: उत्पन्न विधि स्टब inflater = (LayoutInflater) getContext ()। GetSystemService (संदर्भ। LEOUT_INFLATER_SERVICE); Inflater.inflate (R.layout.clearable_edit_text, ये, सच); Edit_text = (संपादन टेक्स्ट) findViewById (R.id.clearable_edit); Btn_clear = (बटन) ढूंढिए वीबीआईआईडी (आर.आईड.क्लाइरेबल_बटन_क्लायर); btn_clear.setVisibility (RelativeLayout.INVISIBLE); स्पष्ट पाठ(); showHideClearButton (); } शून्य सेट वैल्यू (स्ट्रिंग इशारा, इंट प्रकार) {edit_text.setHint (संकेत); edit_text.setInputType (प्रकार); } शून्य सेट वैल्यू (स्ट्रिंग इशारा) {edit_text.setHint (संकेत); } शून्य सेट वैल्यू (स्ट्रिंग इशारा, इंट टाइप, इंट लाइन) {edit_text.setHint (संकेत); edit_text.setInputType (प्रकार); edit_text.setMaxLines (रेखाएं); } शून्य क्लियर () {btn_clear.setOnClickListener (नई OnClickListener () {@Override सार्वजनिक शून्य onClick (देखें v) {// TODO स्वत: निर्मित विधि ठूंठ edit_text.setText ( "");}}); } Void showHideClearButton () {edit_text.addTextChangedListener (नया TextWatcher) {@Override सार्वजनिक शून्य पर टेस्ट चेंजेड (Charsequence s, int start, int before, int count) {// TODO स्वतः जनरेट किया गया विधि स्टब अगर (s.length () & gt ; 0) btn_clear.setVisibility (RelativeLayout.VISIBLE); बाकी btn_clear.setVisibility (RelativeLayout.INVISIBLE);} @Override सार्वजनिक शून्य beforeTextChanged (CharSequence रों, पूर्णांक शुरू, पूर्णांक गिनती, पूर्णांक के बाद) {// TODO स्वत: निर्मित विधि ठूंठ } @TextChanged (संपादन करने योग्य) के बाद @ ओवरराइड सार्वजनिक शून्य {// TODO स्वत: उत्पन्न विधि स्टब}}); } सार्वजनिक संपादन योग्य टेक्स्ट () (संपादन योग्य टेक्स्ट = edit_text.getText (); वापसी पाठ; } सार्वजनिक शून्य सेट पाठ (चार सस्वर पाठ) {edit_text.setText (text); }   

}

और मेरे onFocusChange समारोह है:

  email.setOnFocusChangeListener (नई ClearableEditText ( GetApplicationContext (), ईमेल));    

हो गया है, बस मेरे पसंदीदा कंटिस्टिस्ट गतिविधि में thae फोकस ChangeListner को ओवरराइट करना पड़ा

No comments:

Post a Comment