EditText篇

1.EditText点击设置调用数字键盘且可输入字母的方法
布局

     
代码

    EditText editText = (EditText) findViewById(R.id.limit_edittext);
    String digists = "0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    editText.setKeyListener(DigitsKeyListener.getInstance(digists));
2.在某个事件触发后自动弹出软键盘,如从语音切换到文字操作时,要自动弹出软键盘。具体方法如下:
 et_comment.requestFocus();InputMethodManager imm =         (InputMethodManager) et_comment.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
如果从文字切换到语音(或者点击Button),需要隐藏软件盘
 InputMethodManager mInputMethodManager =
          (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
  mInputMethodManager.hideSoftInputFromWindow(mDemoBinding.editPhone.getWindowToken(),
                0);        
//mDemoBinding.editPhone 为EditText.getWindowToken();
3.android:ems="10"

设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示

4.android:imeOptions="actionSearch"

使用android:imeOptions="actionSearch"时必须加上android:inputType=" "这个属性否则没有效果

  //监听软键盘的搜索按钮
  private void initSearchInputListener() {
        binding.get().input.setOnEditorActionListener((v, actionId, event) -> {
            if (actionId == EditorInfo.IME_ACTION_SEARCH) { //布局文件中指定了input输入框为搜索类型。
                doSearch(v);
                return true;
            }
            return false;
        });
        binding.get().input.setOnKeyListener((v, keyCode, event) -> {
            if ((event.getAction() == KeyEvent.ACTION_DOWN)
                    && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                doSearch(v);
                return true;
            }
            return false;
        });
    }

你可能感兴趣的:(EditText篇)