方法一:使用setOnKeyListener(),这种方式只能监听硬键盘事件所以大多数android设备不能用

editText.setOnKeyListener(new View.OnKeyListener() {                          @Override              public boolean onKey(View v, int keyCode, KeyEvent event) {                  Log.i(TAG, editText.getText());                  return false;              }          }); 
方法二:使用TextWatcher类,可监听软键盘和硬键盘的,只需实现onTextChanged方法即可,另外TextWatcher还提供了beforeTextChanged和afterTextChanged方法,用于更加详细的输入监听处理
editText.addTextChangedListener(new TextWatcher() {                       @Override              public void onTextChanged(CharSequence s, int start, int before, int count) {              Log.i(TAG, "输入文字中的状态,count是输入字符数");                 Log.i(TAG, editText.getText());              }                            @Override              public void beforeTextChanged(CharSequence s, int start, int count,                      int after) {               Log.i(TAG, "输入文本之前的状态");              }                            @Override              public void afterTextChanged(Editable s) {               Log.i(TAG, "输入文字后的状态");              }          });
方法三:实现当输入到最大值时则不允许再输入,另外由EditText并没有提供给我们EditText的禁止输入功能,以下方法也实现了此功能。
  private void setEditable(EditText editText, int maxLength, boolean value) {          if (value) {              editText.setFilters(new InputFilter[] { new MyEditFilter(maxLength) });              editText.setCursorVisible(true);              editText.setFocusableInTouchMode(true);              editText.requestFocus();          } else {              editText.setFilters(new InputFilter[] { new InputFilter() {                  @Override                  public CharSequence filter(CharSequence source, int start,                          int end, Spanned dest, int dstart, int dend) {                      return source.length() < 1 ? dest.subSequence(dstart, dend)                              : "";                  }              } });              editText.setCursorVisible(false);              editText.setFocusableInTouchMode(false);              editText.clearFocus();          }      } 




更多相关文章

  1. Android软键盘弹出时把布局顶上去,控件乱套解决方法
  2. Android(安卓)MediaScannerService源码分析
  3. Android(安卓)强制设置横屏或竖屏 设置全屏
  4. android全屏去掉title栏的多种实现方法
  5. Android(安卓)重力感应
  6. Android(安卓)Canvas drawArc方法介绍
  7. android源码解析--switch
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. android检测网络状态
  2. Android中使用Animation实现控件的动画效
  3. android集合SSH搭建服务器客户端请求
  4. Android优质学习方法
  5. Android(安卓)UI属性大解
  6. 国内目前最全面的介绍——Android中的Bro
  7. android 建数据库 SQLite 存储sd 卡或者
  8. Android网络连接判断与处理
  9. 〖Android〗(how-to) fix k860/k860i bul
  10. Android应用程序进程启动过程的源代码分