जब स्क्रीन दिखाई देती है तो किसी क्षेत्र के ऑटो फोकस / कीबोर्ड पॉपअप को कैसे हटाएं?


105

मेरे पास एक स्क्रीन है जहां पहला फ़ील्ड एक EditText है, और यह स्टार्टअप पर ध्यान केंद्रित करता है, साथ ही संख्यात्मक इनपुट प्रकार को पॉपअप करता है, जो बहुत कष्टप्रद है।

मैं यह कैसे सुनिश्चित कर सकता हूं कि जब गतिविधि शुरू की जाती है तो फोकस प्राप्त नहीं होता है, और / या इनपुट पैनल नहीं उठाया जाता है?

जवाबों:


157
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

या

एप्लिकेशन टैग में नीचे प्रकट फ़ाइल में गतिविधि गुण सेट करें

android:windowSoftInputMode="stateHidden"

एंड्रॉइड को सेट करना: androidManifest.xml फ़ाइल में windowSoftInputMode अन्य मानों के साथ Ored किया जा सकता है। मोड आमतौर पर एकल मानों का तात्पर्य करता है लेकिन इस मामले में, मूल्य झंडे का एक संग्रह है। मूल्यों का विवरण:Formats: flag Values: adjustNothing, adjustPan, adjustResize, adjustUnspecified, stateAlwaysHidden, stateAlwaysVisible, stateHidden, stateUnchanged, stateUnspecified, stateVisible Specify the default soft-input mode for the main window of this activity. A value besides "unspecified" here overrides any value in the theme.
जेफ मुइर

145

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

android:windowSoftInputMode="stateHidden"

मेरे लिए काम नहीं किया। मैंने इसे activity_main.xml में डाल दिया। यह सही काम किया जब मैंने इसे ऑनक्रिएट () में डाल दिया। । GetWindow () setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
15

20

प्रोग्राम के लिए कीबोर्ड प्रदर्शित नहीं है, लेकिन डिफ़ॉल्ट विजेट अभी भी फोकस कॉल को पुनः प्राप्त करता है:

getWindow().setSoftInputMode(WindowManager.
                             LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

में onResume()


11
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

अंदर उपरोक्त विधि फोन OnCreate () यह रोकें softKeyboard दिखाने के लिए जब तक कि उपयोगकर्ता का चयन EditText द्वाराtapping or clicking.

या बस android:windowSoftInputMode="stateHidden"गतिविधि टैग में जोड़ेंManifest.xml


10

यह आमतौर पर एक गड़बड़ है। पहली चीज़ जो मैं कोशिश करता हूं वह है कि किसी अन्य दृश्य के माध्यम से ध्यान चुराने की कोशिश करें। तुम भी ध्यान देने योग्य और ध्यान देने योग्य है।

<TextView
  ...
  android:focusable="true"
  android:focusableInTouchMode="true">

    <requestFocus/>
</TextView>

यह काम। मुझे लगता है कि यह एक क्लीनर दृष्टिकोण है लेकिन यह भी निर्भर करता है कि आपकी स्थिति कैसी है। मैं इसे स्वीकार कर रहा हूं।
JaydeepW

5

एक और दृश्य फोकस पकड़ो। डिफ़ॉल्ट रूप से, पहले फ़ोकस करने योग्य दृश्य को फ़ोकस फ़्लो होने पर फ़ोकस मिलेगा। आप XML के माध्यम से एक अलग दृश्य पर ध्यान देने का अनुरोध कर सकते हैं:

<TextView
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:text="Some other view">

    <requestFocus />
</TextView>

यह किसी भी दृश्य के लिए काम करता है।

यदि आप इसे प्रोग्रामेटिक रूप से करना चाहते हैं, तो आप उपयोग कर सकते हैं view.requestFocus()


0
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}

3
StackOverflow में आपका स्वागत है! यह अन्य मंचों की तरह नहीं है, यदि आप अपना उत्तर बदलना चाहते हैं, तो बस editलिंक पर क्लिक करें और अपने बदलाव करें। और कृपया अपने कोड का चयन करके और कोड नमूना बटन {}या दबाकर अपने कोड को प्रारूपित करने का प्रयास करें Ctrl+K
पीटर लैंग

0

जोड़ा जा रहा है android:windowSoftInputMode="stateHidden"प्रकट में अपनी गतिविधि के लिए एक ही कुंजीपटल छुपाता है जब आप गतिविधि लॉन्च कर रहे हैं, या गूगल का कहना है के रूप में

जब उपयोगकर्ता सक्रिय रूप से गतिविधि को आगे बढ़ाता है, बजाय अन्य गतिविधि को छोड़ने के कारण इसमें वापस जाता है

कीबोर्ड को छिपाने के लिए भी जब उपयोगकर्ता बैक बटन दबाता है और किसी अन्य गतिविधि से आपकी गतिविधि पर वापस जाता है, उपयोग करें android:windowSoftInputMode="stateAlwaysHidden"


-1

यह कोशिश नहीं की है और न ही मैं अपने प्रोग्रामिंग कंप्यूटर के पास हूं, लेकिन मैं प्रोग्रामेटिक रूप से माता-पिता के दृश्य पर ध्यान केंद्रित करने या उस प्रकृति की चीज़ पर कुछ भी करने का संदेह कर सकता हूं - जो समाधान की तुलना में अधिक संभावना है, लेकिन फिर से इसे केवल परीक्षण करने में सक्षम नहीं है। एक विचार


1
मैंने कोशिश की है कि काम नहीं करता है। मैंने .requestFocus();एक बटन पर कॉल किया, और अभी भी कीबोर्ड पॉपअप।
पेंटियम

विचारों को टिप्पणी के रूप में जोड़ा जा सकता है
अल्बर्टो एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.