-1

在我的EditText我想输入第一个字符作为 alpha 和其余的是什么。我在TextWatcher. 但现在我的问题是,如果我输入了错误的内容(如数字、特殊字符)作为我的第一个字符,那么我EditText不应该接受剩余的字符。如果我纠正我的第一个字符,那么只有我EditText应该接受。他们有没有可能实现这个朋友?如果是的话,请朋友们指导我。

我的 textWatcher 代码是

edittext.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {

    }

    public void afterTextChanged(Editable s) {          
        if (s.length() > 0) {
            String str = edittext.getText().toString();
            char t = str.charAt(0);
            if (!Character.isLetter(t)) {
                Toast.makeText(getApplicationContext(),
                        "please enter your first charecter as alpha",
                        Toast.LENGTH_LONG).show();
            }
        }
    }
});

提前致谢。

4

3 回答 3

3

试试下面的代码

editText.addTextChangedListener(new TextWatcher() {

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

        }

        public void beforeTextChanged(CharSequence s, int start,
                int count, int after) {
        }

        public void afterTextChanged(Editable s) {

            Character cr = s.toString().charAt(0);
     if(Character.isLetter(cr))
      {
        // do stuff here  
      }
             else
             {
                // do stuff here
             }


        }
    });
于 2013-03-05T07:29:21.550 回答
0
editText.addTextChangedListener(new TextWatcher() {

            public void onTextChanged(CharSequence s, int start,
                    int before, int count) {
                            //check if 's' starts with an alphabet
                            if(Character.isLetter(s.toString().charAt(0)))
                            {
                                  //success
                            } else {
                                  //fail
                            }
            }

            public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {
            }

            public void afterTextChanged(Editable s) {
            }
        });
于 2013-03-05T07:25:58.923 回答
0

您可以使用方法 chatAt(int index) 获取指定位置的字符值,在您的情况下为 0。

那么你应该使用 isLetter() 来验证获取的字符是字母。

例如。isLetter(chatAt(0))

于 2013-03-05T07:29:46.873 回答