Java 如何为输入验证设置onClick?
我面临的问题是用户输入没有通过验证。当我点击regSignUp2Btn按钮时,它将直接跳转到下一个屏幕。当用户未提供验证信息时,它假定在TextInputLayout下提供错误消息。我的代码有错误吗? 下面是我的代码。 爪哇: XML:Java 如何为输入验证设置onClick?,java,android,Java,Android,我面临的问题是用户输入没有通过验证。当我点击regSignUp2Btn按钮时,它将直接跳转到下一个屏幕。当用户未提供验证信息时,它假定在TextInputLayout下提供错误消息。我的代码有错误吗? 下面是我的代码。 爪哇: XML: 在您的代码中,您正在使用OnClickListener regSignUp2Btn.setOnClickListener{ /* ....*/ Intent intent = new Intent(signUpScreen.this
在您的代码中,您正在使用
OnClickListener
regSignUp2Btn.setOnClickListener{
/* ....*/
Intent intent = new Intent(signUpScreen.this, signUpScreen2.class);
//...
startActivity(intent);
}
此侦听器不提供验证,并覆盖布局中使用的android:onClick=“call2ndSignUpScreen”
改为:
regSignUp2Btn.setOnClickListener{
if (!validateEmail() | !validateName() | !validatePassword() | !validateConfirmPassword()) {
//setError
return;
}
//....your code
}
请注意,在android中,按钮只能有一个onClick侦听器 在XML布局中,您在regSignUp2Btn(也称为goToSignUp2Btn)上设置onClick处理程序 但稍后,在signUpScreen.onCreate()中,您尝试分配第二个。但是,这会将分配给XML布局的onClick处理程序替换为在未经验证的情况下启动活动的处理程序:
regSignUp2Btn.setOnClickListener(v -> {
//Get all the values
...
startActivity(intent);
});
您必须在一个OnClickListener中组合验证和活动的开始。
从XML布局中删除“android:onClick=“call2ndSignUpScreen”。
从活动中删除方法call2ndSignUpScreen(View视图)。然后,在活动的onCreate()方法中,将regSignUp2Btn的OnClickListener的实现更改为以下内容:
regSignUp2Btn.setOnClickListener(v -> {
if (!validateEmail() | !validateName() | !validatePassword() | !validateConfirmPassword())
return;
//Get all the values
String name = regName.getEditText().getText().toString().trim();
String email = regEmail.getEditText().getText().toString().trim();
String password = regPassword.getEditText().getText().toString();
Intent intent = new Intent(signUpScreen.this, signUpScreen2.class);
intent.putExtra("name", name);
intent.putExtra("email", email);
intent.putExtra("password", password);
startActivity(intent);
});
这个问题似乎根本不涉及android studio,而是问android本身。如果你问的是IDE的一个功能,你可以使用
android studio
标签,否则只使用android
就可以了
android:onClick="call2ndSignUpScreen"
regSignUp2Btn.setOnClickListener(v -> {
//Get all the values
...
startActivity(intent);
});
regSignUp2Btn.setOnClickListener(v -> {
if (!validateEmail() | !validateName() | !validatePassword() | !validateConfirmPassword())
return;
//Get all the values
String name = regName.getEditText().getText().toString().trim();
String email = regEmail.getEditText().getText().toString().trim();
String password = regPassword.getEditText().getText().toString();
Intent intent = new Intent(signUpScreen.this, signUpScreen2.class);
intent.putExtra("name", name);
intent.putExtra("email", email);
intent.putExtra("password", password);
startActivity(intent);
});