2011-06-08 16 views
16

मुलायम कीबोर्ड खुलता है और बंद होने पर तर्क निष्पादित करने के लिए को ओवरराइड करने के लिए मेरी एंड्रॉइड गतिविधि को सेट करने के लिए यहां विभिन्न प्रश्नों और उत्तरों का पालन किया गया है। मेरे कोड से प्रासंगिक अंश यहां दिए गए हैं। मैं सरलतम परिदृश्य के लिए नीचे उबला हुआ है:ऑन कॉन्फ़िगरेशन चेंज() कीबोर्ड के लिए फायरिंग नहीं है

AndroidManifest.xml

... 
<activity 
    android:name=".SearchActivity" 
    android:label="@string/app_name" 
    android:configChanges="keyboard|keyboardHidden|orientation" 
/> 
... 

SearchActivity.java

... 
@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    Toast.makeText(this, "onConfigurationChanged()", Toast.LENGTH_SHORT).show(); 
} 
... 

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

तो स्थान पर कोड अभिविन्यास परिवर्तन आग के बाद से काम करता प्रतीत होता है, लेकिन मुझे सॉफ्ट कीबोर्ड के लिए कुछ भी नहीं मिलता है। कोई विचार? अगर जवाब है "ऑन कॉन्फ़िगरेशन चेंज() में सॉफ्ट कीबोर्ड ईवेंट नहीं हैं", इस घटना का पता लगाने और संभालने के लिए उचित समाधान क्या है?

बस यह प्रासंगिक होने पर, मैं एक Droid X पर जिंजरब्रेड चलाने पर परीक्षण कर रहा हूं।

+0

मेरे पास एक ही समस्या है, क्या आप अंततः इसे पूरा कर चुके हैं? – Jacky

उत्तर

14

नहीं, ऑन कॉन्फ़िगरेशन चेंज() में सॉफ्ट कीबोर्ड ईवेंट नहीं होते हैं: यह कॉन्फ़िगरेशन परिवर्तन नहीं है। अभिविन्यास परिवर्तन संसाधनों का एक नया सेट उपयोग करने का कारण बनता है (जैसे लेआउट-लैंड बनाम लेआउट-पोर्ट), जो कॉन्फ़िगरेशन परिवर्तन की परिभाषा है।

तो यह कैसे करें? खैर, कुंजीपटल दिखाए जाने पर कोई घटना नहीं निकालती है, लेकिन जब आप कीबोर्ड को अपने लेआउट को समायोजित करने का कारण बनते हैं तो आप यह पता लगा सकते हैं।

कोड के लिए How to check visibility of software keyboard in Android? देखें।

+29

यह मेरे लिए एक बग की तरह लगता है। 'कीबोर्ड हैडन' स्पष्ट रूप से 'कॉन्फ़िगरेशन' ऑब्जेक्ट का एक हिस्सा है और यहां तक ​​कि उदाहरण में भी प्रयोग किया जाता है http://developer.android.com/guide/topics/resources/runtime-changes.html दस्तावेज़ों से: 'एक ध्वज यह इंगित करता है कि कोई भी कीबोर्ड उपलब्ध है। हार्डकीबोर्ड के विपरीत, यह एक सॉफ्ट कीबोर्ड भी ध्यान में रखता है, इसलिए यदि हार्ड कीबोर्ड छुपा हुआ है लेकिन सॉफ्ट कीबोर्ड उपलब्ध है, तो इसे NO पर सेट किया जाएगा। मान इनमें से एक है: KEYBOARDHIDDEN_NO, KEYBOARDHIDDEN_YES.' –

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