2015-05-26 31 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); 
使用