关于EditText输入密码时的限制

来源:互联网 发布:2016陈子豪刷枪软件 编辑:程序博客网 时间:2024/05/17 01:54

有的时候EditText输入的时候有一些限制:

如:输入内容时的一些限制

// 设置输入限制
Edittext.setKeyListener(new NumberKeyListener() {

      @Override
       public int getInputType() {
            return InputType.TYPE_TEXT_VARIATION_PASSWORD;
        }

       @Override
        protected char[] getAcceptedChars() {
            char[] numberChars = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
            return numberChars;
        }

});


还有就是输入金额的限制:

这个是转载的,但是个人觉得很好用,分享给大家:

/**
 * 控制输入金额为钱数的
 *
 * @author Administrator
 *
 */
public class Money {
    public static void setPricePoint(final EditText editText) {

        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.toString().contains(".")) {
                    if (s.length() - 1 - s.toString().indexOf(".") > 2) {
                        s = s.toString().subSequence(0, s.toString().indexOf(".") + 3);
                        editText.setText(s);
                        editText.setSelection(s.length());
                    }
                }
                if (s.toString().trim().substring(0).equals(".")) {
                    s = "0" + s;
                    editText.setText(s);
                    editText.setSelection(2);
                }
                if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {
                    if (!s.toString().substring(1, 2).equals(".")) {
                        editText.setText(s.subSequence(0, 1));
                        editText.setSelection(1);
                        return;
                    }
                }
            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
            }
        });
    }
}


之后只需将Money.setPricePoint(view);//此处的view就是EditText对象;

还有一点值得注意的就是要在xml文件中把EditText的

android:inputType="numberDecimal"设置上就实现保留两位小数如果想限制位数可以用

android:maxLength="int"进行限制



0 0