2014-02-20 59 views
3

是新到Android
在一個應用程序正在使用EDITTEXT其maximun文本長度爲2
這裏我的問題
在EDITTEXT輸入兩個字符(即)時EDITTEXT達到最大文本長度是shuold自動隱藏軟鍵盤後
任何人都可以說如何做到這一點,這有可能嗎?
我在堆棧溢出一些答案像這樣如何在android中的editText中輸入文本的最大長度後自動隱藏鍵盤?

InputMethodManager inputManager = 
     (InputMethodManager) context. 
      getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(
     this.getCurrentFocus().getWindowToken(), 
     InputMethodManager.HIDE_NOT_ALWAYS); 

是否足夠?或者我想在編碼中做任何額外的事情? 謝謝

回答

3

使用這一個在onTextChanged()

{ 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
} 
2
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0); 
+0

在EDITTEXT鍵盤輸入2的文字會自動隱藏後? – user3265781

+0

不,您需要在EditText上放置一個偵聽器,並在每次更改時檢查EditText的字符數。如果該數字大於2,則比使用上述mehtod隱藏鍵盤。 – Nabz

+0

你能說請怎麼做? – user3265781

1

你實際上需要在edittext的文本被改變時監聽。然後,當文本達到特定長度時,您可以隱藏鍵盤。您可以像這樣使用Textwatcher。

 // replace R.id.editText1 with your edittext id 
    final EditText myEditText = (EditText) findViewById(R.id.editText1); 
    final int maxTextLength = 2;//max length of your text 

    InputFilter[] filterArray = new InputFilter[1]; 
    filterArray[0] = new InputFilter.LengthFilter(maxTextLength); 
    myEditText.setFilters(filterArray); 

    myEditText.addTextChangedListener(new TextWatcher(){ 


    @Override 
    public void afterTextChanged(Editable arg0) { 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

    } 

    @Override 
    public void onTextChanged(CharSequence txtWatcherStr, int start, int before, int count){ 
     if(count==maxTextLength){ 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
    } 
} 
}); 
+0

請你解釋一下這段代碼 – user3265781

+0

TextWatcher觀察被改變的文本。當文本長度達到最大長度時,我只需關閉鍵盤。 – Adnan

+0

試過這個,但它沒有工作。上面的代碼是足夠的,否則要寫任何其他 – user3265781

相關問題