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);
                    }
    
                }
            });
    
        }
    }

    结果:

  • 相关阅读:
    正则表达说明—Pattern API
    C#调用dll(Java方法)
    获取页面URL两种方式
    可拖动布局之jQueryUI
    可拖动布局之Gridster
    Thymeleaf入门基础
    Eclipse安装反编译插件
    Spring Boot:Consider defining a bean of type '*.*.*' in your configuration解决方案
    Spring Boot : Whitelabel Error Page解决方案
    MYSQL卸载
  • 原文地址:https://www.cnblogs.com/manmanlu/p/5729684.html
Copyright © 2011-2022 走看看