2010-12-29 15 views
5

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

मेरे पास एक असली एंड्रॉइड फोन आसान नहीं है, तो क्या यह एक एमुलेटर केवल चीज़ है या यह वास्तविक डिवाइस पर ऐसा होगा। यदि ऐसा है, तो मैं वर्चुअल कीबोर्ड को दूर करने के लिए क्या कर सकता हूं, जब मैं फॉर्म पर कहीं और क्लिक करता हूं?

उत्तर

3

बैक बटन पर क्लिक करें। वे कीबोर्ड एक गतिविधि है। स्क्रीन के यादृच्छिक क्षेत्र पर क्लिक करते समय कीबोर्ड को हटाने का कोई आसान तरीका नहीं है।

+0

एंड्रॉयड जाना जाता उपयोगकर्ताओं कार्य करें:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED); 

आप जिस तरह से ऊपर का उपयोग करते हैं कीपैड खोलने के लिए, आप SHOW_IMPLICIT मूल्य

उदाहरण के लिए साथ SHOW_FORCED मान बदलने के लिए कोशिश कर सकते हैं सामान्य रूप से यह कुंजीपटल को हटाने का तरीका है? – AngryHacker

+0

जहाँ तक मुझे पता है, हाँ। – Falmarri

+0

@AngryHacker - "क्या एंड्रॉइड उपयोगकर्ता सामान्य रूप से जानते हैं कि यह कीबोर्ड को हटाने का तरीका है?" मेरे एचटीसी डिजायर में वर्चुअल कीबोर्ड पर एक कीबोर्ड आइकन और 'डाउन एरो' वाला बटन/कुंजी होता है जो दबाए जाने पर इसे छुपाता है। मुझे संदेह है कि यह फोन के बैक बटन जैसा ही करता है। – Squonk

2

मुझे लगता है कि एमुलेटर में आप कीबोर्ड को छुपाने के लिए एस्केप दबा सकते हैं। वास्तविक डिवाइस पर कीबोर्ड पर एक छुपा बटन होता है या आप ui में कहीं और दबा सकते हैं। वैसे भी यह मेरे एचटीसी डिजायर एस पर भी काम करता है।

0

मेरे पास गैलेक्सी एस 2 है जो एंड्रॉइड 2.3.6 चला रहा है।
वेबसाइटों में लॉग इन करते समय आवश्यक टेक्स्ट दर्ज करने के बाद मुझे कीबोर्ड से समस्याएं नहीं आ रही थीं। मैंने पाया कि हार्डवेयर रिटर्न बटन पर क्लिक करने से वर्चुअल कीबोर्ड को रास्ते से बाहर ले जाता है। लेकिन मौलिक रूप से यह वेब ब्राउज़र को एक पृष्ठ पर वापस ले जाएगा। जो निराशाजनक है क्योंकि तब मुझे जो भी वेबसाइट मैं कनेक्ट कर रहा हूं, उसके लिए मुझे लॉग इन जानकारी दर्ज करनी होगी। उम्मीद है कि एंड्रॉइड 4.x ने इन गड़बड़ी के कुछ मुद्दों को हल किया है।

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(), InputMethodManager.HIDE_IMPLICIT_ONLY); 
        } 
    
  3. अंत में , अपने edittext पर onFocusChangeListener सेट करें।

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

Source

1

मैं इस समस्या रहते थे और मैं इसे संकल्प लिया। यह समस्या मेरे प्रोजेक्ट में InputMethodManager.SHOW_FORCED मान है। जब मैं SHOW_FORCED का उपयोग करके कीपैड खोलता हूं तो जब मैं कीपैड को बंद करने का प्रयास करता हूं, तो कीपैड बंद नहीं हो रहा था।

उदाहरण के लिए:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
संबंधित मुद्दे