2011-10-17 17 views
24

अब, मैं softkeyboard छिपाने की कोशिश जब कुंजीपटल बाहर उपयोगकर्ता स्पर्श:गतिविधि की खिड़की कैसे प्राप्त करें बिना देखे?

((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)) 
.hideSoftInputFromWindow(editView.getWindowToken(), 
InputMethodManager.HIDE_NOT_ALWAYS); 

मैं अपने आधार गतिविधि वर्ग में तर्क डाल चाहते हैं, इसलिए यदि यह getWindowToken के लिए संभव है दृश्य के बिना?

+1

यह एक गलत वर्तनी "getgetWindowToken()" है? – MKJParekh

+1

संपादन डुप्लिकेट के बाहर क्लिक करने के बाद एंड्रॉइड पर सॉफ्ट कीबोर्ड को छिपाने के तरीके के संभावित डुप्लिकेट?] (Http://stackoverflow.com/questions/4165414/how-to-hide-soft-keyboard-on-android-after-clicking-outside -edittext) – Reno

+1

'InputMethodManager inputManager = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE);' 'inputManager.hideSoftInputFromWindow (findViewById (android.R.id.content) .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);' –

उत्तर

15

निश्चित रूप से आप का उपयोग कर सकते हैं:

getContentView().getWindowToken() 

या SO Quest

+9

हल अनुसार हैनरी का सुझाव: findViewById (android.R.id.content) .getWindowToken() –

+1

यह काम नहीं करता है। – technophyle

+6

कोई getContentView() विधि नहीं है। FindViewById (android.R.id.content) का उपयोग करें .getWindowToken() इसके बजाए। – mhsmith

25

लिए मैं वास्तव में एक ही समस्या का सामना करना पड़ा है, जबकि एक गतिविधि के भीतर OnPageChangeListener लेखन आप उल्लेख कर सकते हैं। आप इन समाधानों में से एक का उपयोग कर सकते हैं। कोई एक:

getWindow().getDecorView().getRootView().getWindowToken() 

या:

findViewById(android.R.id.content).getWind‌​owToken() 
0
public static final String M_TOKEN = "mToken"; 

@Nullable 
protected IBinder getToken(Activity activity) { 
    try { 
     Field mTokenField = Activity.class.getDeclaredField(M_TOKEN); 
     mTokenField.setAccessible(true); 
     IBinder mToken = (IBinder) mTokenField.get(activity); 
     return mToken; 
    } catch (NoSuchFieldException e) { 
     // handle 
    } catch (IllegalAccessException e) { 
     // handle 
    } 
    return null; 
} 
0

आप कीबोर्ड को छिपाने के लिए अपने मैनिफ़ेस्ट फ़ाइल गतिविधि टैग पर यह कोशिश कर सकते हैं।

android:windowSoftInputMode="stateHidden" 
1

, बस का उपयोग getWindow().getDecorView().getWindowToken()

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