定义一个值到EditText

时间:2018-08-24 13:18:27

标签: android android-activity android-edittext password-protection textwatcher

我正在尝试使用仅接受我以编程方式定义的高级值的EditText进行活动-像密码一样(如单词或代码号),以便用户无法访问如果他没有输入正确的密码,则执行下一个活动。

有人对如何制作这样的东西有想法吗?我必须使用TextWatcher吗?如果是,怎么办?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用它。

xquery version "1.0-ml";

xdmp:save("/tmp/test.csv", document {
  (: insert csv header :)
  text { "uri
" },

(: append csv records line by line :)
  for $doc in cts:search(collection(), cts:true-query())
  return text{ xdmp:node-uri($doc) || "
" }
})

通常,您会在登录按钮的onClick方法中放入类似内容。但是我在textwatchers afterTextChanged方法中使用了类似的方法来检查输入的文本是否在列表中,然后启用“确定”按钮。

顺便说一句:在应用中对密码进行硬编码永远不是一个好习惯。

答案 1 :(得分:0)

使用正则表达式(regex)定义密码格式。正则表达式密码示例:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$
^                 # start-of-string
(?=.*[0-9])       # a digit must occur at least once
(?=.*[a-z])       # a lower case letter must occur at least once
(?=.*[A-Z])       # an upper case letter must occur at least once
(?=.*[@#$%^&+=])  # a special character must occur at least once
(?=\S+$)          # no whitespace allowed in the entire string
.{8,}             # anything, at least eight places though
$ 

            # end-of-string

将TextWatch添加到您的EditText中,以在键入时观察文本更改

yourEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
               Pattern PASSWORD_PATTERN = Pattern.compile("Your pattern");

                if (PASSWORD_PATTERN.matcher(s.toString()).matches()) { 
                    //Password is valid, move to new activity
                }
            }
        });

使用正则表达式兄弟很简单!