public class EditHideActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_hide); EditText et_phone = findViewById(R.id.et_phone); EditText et_password = findViewById(R.id.et_password); et_phone.addTextChangedListener(new HideTextWatcher(et_phone,11)); et_password.addTextChangedListener(new HideTextWatcher(et_password,6)); } private class HideTextWatcher implements TextWatcher { //声明一个编辑框对象 private EditText mView; private int mMaxLenghth; public HideTextWatcher(EditText v, int maxlenth) { this.mView=v; this.mMaxLenghth=maxlenth; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } //在编辑框输入文本变化后触发 @Override public void afterTextChanged(Editable s) { //获得已输入的文本字符串 String str=s.toString(); //输入法达到11位(如手机号码),或者达到6位(如登陆密码)时候关闭输入法 if(str.length()== mMaxLenghth){ //隐藏输入法软键盘 ViewUtil.hideOneInputMethod(EditHideActivity.this,mView); } } } }
public class ViewUtil { public static void hideOneInputMethod(Activity Act , View v){ //从系统服务器中获取输入法管理器 InputMethodManager Imm= (InputMethodManager) Act.getSystemService(Context.INPUT_METHOD_SERVICE); //关闭屏幕上的输入法软键盘 Imm.hideSoftInputFromWindow(v.getWindowToken(),0); } }