2015-05-26 54 views
0

這是我的問題!Android:可以在光標位置隱藏軟鍵盤嗎?

我有一個最大字符的EDITTEXT場是1

<EditText 
    android:id="@+id/editText" 
    android:maxLength="1"/> 

然後我叫軟鍵盤輸入的字符。 是否有可能在輸入一個字符後自動隱藏鍵盤? 如果可能的話,我該怎麼做?

+0

'TextChangeListener()'對於.. –

回答

1

試試這個,

final EditText myEditText = (EditText) findViewById(R.id.editText1); 
    final int maxTextLength = 1;//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); 
    } 
} 
}); 
1

試試這個:

tvSecondary.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) 
     { 
      if(tvSecondary.getText().toString().length()>0) 
      { 
       add your hide-keyboard code 
      } 
     } 

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

     } 

     @Override 
     public void afterTextChanged(Editable s) 
     { 

     } 
    }); 

如果工作請註明右

+0

請標明它的權利 – Prashant

2

您可以使用hideSoftInputFromWindow隱藏軟鍵盤,它是裏面InputMethodManager。但請記住,您必須通過您的窗口的令牌,您可以通過從編輯中調用getWindowToken()獲得該令牌。
所以,你最終的代碼看起來應該是這樣的:

EditText myEdit= (EditText) findViewById(R.id.editText); 
InputMethodManager imm = (InputMethodManager)getSystemService(
     Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); 
使用