フォームを検証する最良の方法は何ですか?
私は次のことを試しました:
EditText fname = (EditText)findViewById(R.id.first_name);
String fname_text = fname.getText().toString;
if(fname_text.equalsIgnoreCase(""))
{
fname.setError("Field is required");
}
また:
fname.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count){
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after){
}
@Override
public void afterTextChanged(Editable s)
{
Pattern mPattern = Pattern.compile("[A-Za-z]{2,20}$");
Matcher matcher = mPattern.matcher(s.toString());
if(!matcher.matches()) // on Success
{
fname.setError("Please make sure you input a valid first name");
}
}
});
私が混乱しているのは...ページが初めて読み込まれるたびにエラーメッセージが表示されるのですが、EditText内に移動してコンテンツを入力すると、コンテンツを消去するとエラーメッセージが表示されます持続しない。では、この検証を永続的に保つにはどうすればよいですか??? プログラムが形作られているため、何もうまく検証できないようです。そして、あなたは完全な例でアンドロイドの正規表現のためのいくつかの良いリンクを知っています, 推薦してください.
また、Pattern メソッドと Matcher メソッドを onTextChanged または beforeTextChanged に配置すると、出力にどのように影響しますか?