Edittext字数限制且显示剩余可输入字数

来源:互联网 发布:知美术馆开放时间 编辑:程序博客网 时间:2024/04/29 21:19

在开发中输入框需要限制用户输入的字数,在自己的项目中用到了,所以写下来已被以后使用。

public class MainActivity extends Activity {


    private EditText mEt;
    private TextView mTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
    }
    
    public void initData() {
        mEt = (EditText) findViewById(R.id.et);
        mTv = (TextView) findViewById(R.id.tv);
        mEt.addTextChangedListener(mTextWatcher);
    }

    TextWatcher mTextWatcher = new TextWatcher() {
        private CharSequence temp;
        private int editStart;
        private int editEnd;

        @Override
        public void beforeTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
                                       temp = s;
        }

        @Override
        public void onTextChanged(CharSequence s, int arg1, int arg2,int arg3) {
            tv_problem_int.setText(80 - s.length() + "");
        }

        @Override
        public void afterTextChanged(Editable s) {
            editStart = et_problem_zp.getSelectionStart();
            editEnd = et_problem_zp.getSelectionEnd();
            if (temp.length() - 1 == 80) {
                Toast.makeText(MainActivity.this,
                        "你输入的字数已经达到了限制!", Toast.LENGTH_SHORT)
                        .show();
                s.delete(editStart - 1, editEnd);
                int tempSelection = editStart;
                et_problem_zp.setText(s);
                et_problem_zp.setSelection(tempSelection);
            }
        }
    };

}

0 0
原创粉丝点击