2015-05-26 1 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^