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

    结果:

  • 相关阅读:
    html基础笔记
    webpack实用配置总结
    Vue生命周期
    Vue跨域解决方法
    日历
    绝对地址和相对地址
    HTML+CSS要点
    (利用DOM)在新打开的页面点击关闭当前浏览器窗口
    前端面试
    前端工程师的知识体系
  • 原文地址:https://www.cnblogs.com/manmanlu/p/5729684.html
Copyright © 2011-2022 走看看