zoukankan      html  css  js  c++  java
  • 使用TextWatcher监听EditText变化

    public class MainActivity extends AppCompatActivity {
        private TextView mTextView;
        private EditText mEditText;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mTextView = (TextView) findViewById(R.id.tv);
            mEditText = (EditText) findViewById(R.id.et);
            /**
             * 监听EditText框中的变化
             */
            mEditText.addTextChangedListener(new TextWatcher() {
                private CharSequence temp;
                private int editStart;
                private int editEnd;
    
                /**
                 * 文本变化之前
                 * @param s
                 * @param start
                 * @param count
                 * @param after
                 */
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    temp = s;
                }
    
                /**
                 * 文本变化中
                 * @param s
                 * @param start
                 * @param before
                 * @param count
                 */
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    mTextView.setText("输入的结果为:"+s);
                }
    
                /**
                 * 文本变化之后
                 * @param s
                 */
                @Override
                public void afterTextChanged(Editable s) {
                    editStart = mEditText.getSelectionStart();
                    editEnd = mEditText.getSelectionEnd();
                    if (temp.length() > 10) {//限制长度
                        Toast.makeText(MainActivity.this,
                                "输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
                                .show();
                        s.delete(editStart - 1, editEnd);
                        int tempSelection = editStart;
                        mEditText.setText(s);
                        mEditText.setSelection(tempSelection);
                    }
    
                }
            });
    
        }
    }

    结果:

  • 相关阅读:
    Android AndroidManifest 清单文件以及权限详解!【转】
    java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选
    eclipse中的两种Jre 及 Jre与Jdk的区别
    LAMP_yum安装
    CentOS7修改主机名(hostname)
    Linux下U盘挂载
    mount命令
    vmware虚拟机无法连接网络
    shell中awk printf的用法
    scp命令
  • 原文地址:https://www.cnblogs.com/manmanlu/p/5729684.html
Copyright © 2011-2022 走看看