这是我的问题!
我有一个editText字段,最大字符为1。
<EditText
android:id="@+id/editText"
android:maxLength="1"/>
然后我打电话给软键盘并输入一个字符。 输入一个字符后是否可以自动隐藏键盘? 如果有可能,我该怎么做?
答案 0 :(得分:2)
您可以使用 hideSoftInputFromWindow
隐藏软键盘,它位于 InputMethodManager
内。但请记住,您必须传递窗口的标记,您可以通过编辑中的getWindowToken
()来获取该标记。
所以你最终的代码应该是这样的:
EditText myEdit= (EditText) findViewById(R.id.editText);
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0);
答案 1 :(得分: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);
}
}
});
答案 2 :(得分: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)
{
}
});