2011-10-12 14 views
5

मेरे पास editText के साथ edittext डेटा को edittext पर टैप करने के लिए 0pडेटा को संपादित करने की सहायता से यह ठीक काम कर रहा है।संपादन टेक्स्ट के बाहर क्लिक करते समय कीपैड को कैसे छिपाना है?

मेरी समस्या तब होती है जब मैं edittext के बाहर क्लिक करता हूं तो कीपैड को छिपाना चाहिए।

धन्यवाद ...

उत्तर

5

इसके लिए आपको लेआउट फ़ाइल की मूल लेआउट पर onTouchListener लेना है। टच लिस्टनर पर आपको संपादन टेक्स्ट के बाहर क्लिक करते समय कीबोर्ड को छुपाने के लिए कोड करना होगा। कृपया इस समस्या को हल करने के लिए एक्सएमएल लेआउट और जावा क्लास का पालन करें कृपया निम्नलिखित यूआरएल का पालन करें।

http://amitthaperandroidquery.blogspot.com/2011/10/remove-keyboard-after-click-outside.html

+0

यदि आप और सहायता चाहते हैं तो कृपया मेरे दिए गए ब्लॉग यूआरएल में पूछें या यहां टिप्पणी पोस्ट करें। –

+0

धन्यवाद, यह अच्छी तरह से काम कर रहा है .. – Archana

2

एक तरह से आप EditText के लिए ध्यान देने के परिवर्तन श्रोता सेट कर सकते हैं। विजेट ध्यान केंद्रित आप द्वारा keyborad छिपा कर सकते हैं खो देता है: -

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
+0

et.setOnFocusChangeListener (नई OnFocusChangeListener() { \t \t \t \t @Override \t \t \t \t सार्वजनिक शून्य onFocusChange (देखें वी, बूलियन हैफोकस) { \t \t \t \t \t \t \t \t \t लॉग.d ("ऑन चेंज", "फोकस ==" + हैफोकस); }}); – Archana

+0

जब मैं सूचीदृश्य जैसे बाहरी संपादन पर क्लिक करता हूं तो यह प्रतिक्रिया नहीं देता है – Archana

+2

edittext setOnFocusChangeListener के साथ इसके बाहर क्लिक करते समय फोकस नहीं बदलेगा। यह केवल तभी काम करेगा जब किसी अन्य पर ध्यान केंद्रित किया जा सके जो एक और संपादन की तरह केंद्रित हो। – Karl

0

आप निम्न चरणों करके इस लक्ष्य को हासिल कर सकते हैं:

  1. (सामग्री दृश्य पर अपनी गतिविधि पर) जनक दृश्य बनाओ क्लिक करने योग्य और निम्न को जोड़कर फ़ोकस करने योग्य गुण

    android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. एक hideKeyboard लागू करें() विधि

    public void hideKeyboard(View view) { 
         InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); 
        } 
    
  3. आखिरकार, अपने संपादन के ऑनफोकस चेंजलिस्टर को सेट करें।

    edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
         @Override 
         public void onFocusChange(View v, boolean hasFocus) { 
          if (!hasFocus) { 
           hideKeyboard(v); 
          } 
         } 
        }); 
    

This source

0

एक और तरीका है स्वीकार किए जाते हैं जवाब के लिए इसी तरह से लेआउट रूट दृश्य उपवर्ग के लिए और OnInterceptTouchEvent ओवरराइड, कीबोर्ड छिपाने के लिए और अवास्तविक लौटाते स्पर्श के रूप में हमेशा की तरह प्रचार करने के लिए अनुमति देने के लिए है ।

नीचे दिए गए उदाहरण Xamarin के लिए है, लेकिन यह जावा के लिए बंदरगाह के लिए आसान है:

public class KeyboardHidingScrollView : ScrollView 
{ 
    public KeyboardHidingScrollView (Context context) : base (context) 
    { 
    } 

    public KeyboardHidingScrollView (Context context, IAttributeSet attrs) : base (context, attrs) 
    { 
    } 

    public override bool OnInterceptTouchEvent (Android.Views.MotionEvent ev) 
    { 
     var methodManager = (InputMethodManager)Context.GetSystemService (Context.InputMethodService); 
     methodManager.HideSoftInputFromWindow (WindowToken, HideSoftInputFlags.None); 
     return false; 
    } 
} 
संबंधित मुद्दे

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