2012-03-24 15 views
10

ठीक है तो मैं एक गतिविधि है, जहां एक EditText है और प्रमुख खोज परिणामों में प्रवेश पर दिखाई जा रही हैं, तो क्या मैं बस क्या करना चाहते कीबोर्ड बंद करने के लिए जब खोज परिणामों के बारे में यह क्या करने वाले से उपयोगकर्ता को रोकने के लिए दिखाने के लिए कर रहे हैं । उपयोगकर्ता कुंजीपटल खोज अगर वह फिर से EditText में टैप करता वापस ऊपर खोलना चाहिए उसके परिष्कृत करने के लिए चाहता है लेकिन अगर।उपयोगकर्ता खोज के बाद कीबोर्ड छुपाएं?

यह और अधिक कठिन की तुलना में मैं कल्पना की है, मैं खोज रहा हूँ और कुछ चीजें सबसे भी मेरी एचटीसी पर कुंजीपटल बंद नहीं करते की कोशिश की गई है, एक तरीका है जहाँ InputType INPUT_NULL पर सेट है कीबोर्ड बंद हो जाता है, लेकिन यह नहीं करता है बाद में नहीं खुलेंगे।

यह कैसे करें इस पर कोई सुझाव?

+1

[एंड्रॉइड सॉफ्ट कीबोर्ड को बंद/छुपाएं] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard) –

उत्तर

2

मैं belive इस कोड स्निपेट कुंजीपटल बंद हो जाएगा: अगर कोशिश नहीं यह एक

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

:

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

मुझे पता है कि अगर इन काम

+0

imm ओआरजे के बिना hideSoftInputFromWindow विधि के साथ उपयोग किया जाता है, और विधि के बाद इसके ओबीजे बनाया गया है। गलत स्रोत –

+0

मैं नकल की और गलत क्रम में चिपकाया लेकिन यह काम करना चाहिए – testingtester

+0

संभव नहीं दिख रहा @gabriel यह संपादन किया। –

0

दोस्त उपयोग keybord को छिपाने के लिए निम्नलिखित यह

InputMethodManager in = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
in.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

या ऐसा करने के लिए इस

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

सही तरीके से उपयोग:

searchEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_SEARCH) { 
      performSearch(); 
      return true; 
     } 

     return false; 
    } 
}); 
view.findViewById(R.id.bigSearchBar_button).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     performSearch(); 
    } 
}); 
  • (अगर प्रदान की गई) "actionSearch"

  • प्रारंभ

    1. set imeOptions के लिए इनपुट के लिए श्रोताओं बटन और खोज जब उपयोगकर्ता खोज पर क्लिक करता है तो कीबोर्ड छुपाएं। कि कुंजीपटल सुनिश्चित करने के लिए नहीं दिखाया जाएगा जब उपयोगकर्ता कम करता है और पुनर्स्थापित करता Activity आप सीधे बात और साफ करने के लिए से EditText

      private void performSearch() { 
          searchEditText.clearFocus(); 
          InputMethodManager in = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
          in.hideSoftInputFromWindow(searchEditText.getWindowToken(), 0); 
          ... perform search ... 
      } 
      
  • +0

    बहुत ही सरल और अच्छा समाधान के लिए धन्यवाद! –

    17
    @Override 
    public boolean onQueryTextSubmit(String query) { 
        // Your search methods 
    
        searchView.clearFocus(); 
        return true; 
    } 
    

    फोकस निकालना होगा।

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