2010-10-13 11 views
6

मेरे पास एक गतिविधि प्रति टैब के साथ एक टैबड व्यू है, और जब मैं पहले टैब से स्विच करता हूं, जिसमें टेक्स्ट टैब होता है, दूसरे टैब पर, जो केवल एक क्लिक करने योग्य सूची दिखाता है, मुलायम कीबोर्ड अभी भी है। मैं इसे दूर जाना चाहते हैं, तो मैं यह करने की कोशिश की:बिना किसी कीबोर्ड ऑपरेशन के गतिविधि पर सॉफ्ट कीबोर्ड छुपाएं

public static void hideSoftKeyboard (Activity activity, View view) { 
    InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

लेकिन यह काम नहीं करता, प्रदान करने के लिए कोई आंकड़े देख सकते हैं क्योंकि वहाँ, वहाँ के रूप में स्क्रीन कि कुंजीपटल इनपुट लेता है पर कोई दृश्य है। इसे हल करने के तरीके पर कोई सुझाव?

उत्तर

16

अपने कोड की 3 लाइन में इस प्रयास करें:

imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);

16

पर जो द्वारा प्रदान की जवाब का प्रयास करें: अपनी गतिविधि के लिए प्रकट अंदर Stop EditText from gaining focus at Activity startup

प्लेस इस: android:windowSoftInputMode="stateHidden"

यह एक आम सवाल है, और यह जानना बहुत अच्छा है कि ढांचा वास्तव में इसे बहुत अच्छी तरह से संभालता है।

+3

: -/मेरे पास यह है लेकिन इससे मदद नहीं मिली। जब मैं कीबोर्ड गतिविधि के साथ गतिविधि से स्विच करने के लिए टास्क स्विचर का उपयोग करता हूं (जिसमें कोई टेक्स्ट इनपुट नहीं है और इसलिए कोई कीबोर्ड की आवश्यकता नहीं है) कीबोर्ड रहता है। – ArtOfWarfare

+1

यदि आप एक गतिविधि में हैं, तो यह भी काम नहीं करता है, कीबोर्ड दिखाने के लिए एक संपादन टेक्स्ट टैप करें, और उसके बाद एक्शन बार हेडर के बैक बटन दबाएं। पिछली गतिविधि पर लौटने से कीबोर्ड को छुपाया नहीं जाता है, भले ही इसमें उस विंडो सॉफ़्ट इनपुट मोड सेटिंग हो। –

4

तुम भी

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

4
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
0

इस विधि की कोशिश आप कीबोर्ड किसी भी तरह से छिपाने के लिए मदद मिल सकती है कर सकते हैं। यह मेरे लिए ठीक काम कर रहा है

public void hideKeyboard(Activity activity, View view) { 
     if (activity != null) { 

      if(view != null) 
      { 
       try { 
        InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      }else 
      { 
       activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
      } 

     } 
    } 
+0

क्या यह हमेशा एक वेबव्यू में सॉफ्टकी को छिपाने के लिए भी उपयोगी है? – Criss

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