您的位置:首页 > 其它

关于EditText输入密码时的限制

2016-07-06 09:49 190 查看
有的时候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) {

            
4000
            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"进行限制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: