javascript - Android vs JS:库验证
解决方案
您可以使用
android:inputType="textPersonName"
在您的 EditText 中转换为 xml 布局文件
如果你想在 java 中使用验证器,你可以使用
public class MainActivity extends AppCompatActivity implements Validator.ValidationListener {
@NotEmpty
@Length(min = 3, max = 10)
private EditText editTextUsername;
@NotEmpty
@Password
@Pattern(regex = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})")
private EditText editTextPassword;
@ConfirmPassword
private EditText editTextConfirmPassword;
@NotEmpty
@Pattern(regex = "^\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$")
private EditText editTextPhone;
@Min(18)
@Max(120)
private EditText editTextAge;
@NotEmpty
@Email
private EditText editTextEmail;
@Url
private EditText editTextWebsite;
@Checked
private CheckBox checkBoxAgree;
private Button buttonSave;
private Validator validator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
validator = new Validator(this);
validator.setValidationListener(this);
}
private void initView() {
editTextUsername = findViewById(R.id.editTextUsername);
editTextPassword = findViewById(R.id.editTextPassword);
editTextConfirmPassword = findViewById(R.id.editTextConfirmPassword);
editTextAge = findViewById(R.id.editTextAge);
editTextPhone = findViewById(R.id.editTextPhone);
editTextEmail = findViewById(R.id.editTextEmail);
editTextWebsite = findViewById(R.id.editTextWebsite);
checkBoxAgree = findViewById(R.id.checkBoxAgree);
buttonSave = findViewById(R.id.buttonSave);
buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonSave_onClick(view);
}
});
}
private void buttonSave_onClick(View view) {
validator.validate();
String username = editTextUsername.getText().toString();
if (username.equalsIgnoreCase("pmk")) {
editTextUsername.setError(getText(R.string.username_already_exists));
}
}
@Override
public void onValidationSucceeded() {
Toast.makeText(this, "We got it right!", Toast.LENGTH_SHORT).show();
}
@Override
public void onValidationFailed(List<ValidationError> errors) {
for (ValidationError error : errors) {
View view = error.getView();
String message = error.getCollatedErrorMessage(this);
// Display error messages
if (view instanceof EditText) {
((EditText) view).setError(message);
} else {
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
}
}
推荐阅读
- gstreamer-1.0 - 没有这样的元素或插件'textoverlay'
- javascript - 在被调用者方法上方注释方法调用者名称
- sql - 在错误子句聚合中出现错误的情况下的变量
- android - 任何人都可以解释 In App Review 弹出窗口的功能
- realm - 默认情况下,mongodb 领域在设备上保留多长时间?
- python - 将从 PostgreSQL 获取的列表的数据类型从 NoneType 更改为 int
- android - 将gradle版本3.6.0升级到最新的4.1.0后出现android view inflate异常(仅在更新应用程序时发生异常)
- javascript - Reactjs:设置变量后如何调用useFetch
- angular - 使用 Angular 从 html 和 css 创建可搜索的 pdf - 不适用于 jspdf
- angular - Angular 组件 UI