Java Android登录页面工作不正常
下面提供的代码是用于登录逻辑的,我的要求是在对用户进行身份验证后,应该显示toast,但我没有收到任何toast。 我无法追踪原因,任何帮助都是非常有价值的 下面是我的代码 MainActivity.classJava Android登录页面工作不正常,java,android,Java,Android,下面提供的代码是用于登录逻辑的,我的要求是在对用户进行身份验证后,应该显示toast,但我没有收到任何toast。 我无法追踪原因,任何帮助都是非常有价值的 下面是我的代码 MainActivity.class public class MainActivity extends AppCompatActivity { private EditText name, username, e_mail; @Override protected void onCreate(Bu
public class MainActivity extends AppCompatActivity {
private EditText name, username, e_mail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void doreset(View v) {
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
name.setText("");
username.setText("");
password.setText("");
e_mail.setText("");
}
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation(login_validation_result);
if (login_validation_result==true){
Toast respond = new Toast(this);
respond.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
private boolean login_validation(boolean validation) {
Toast error = new Toast(this);
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
if ((name.getText().toString()) == "") {
error.makeText(this, "Please enter your name", Toast.LENGTH_SHORT).show();
return false;
} else if ((name.getText().toString().length()) < 2) {
error.makeText(this, "The name should have more than 2 letters", Toast.LENGTH_SHORT).show();
return false;
} else if ((username.getText().toString()) == "") {
error.makeText(this, "Please enter your username", Toast.LENGTH_SHORT).show();
return false;
} else if ((username.getText().toString().length()) < 4) {
error.makeText(this, "The username should have more than 4 letters", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()) == "") {
error.makeText(this, "Please enter your e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()).contains("@") == false) {
error.makeText(this, "Please enter a valid e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()).contains(".com") == false) {
error.makeText(this, "Please enter a valid e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((password.getText().toString()) == "") {
error.makeText(this, "Please enter a password", Toast.LENGTH_SHORT).show();
return false;
} else if ((password.getText().toString()).length() < 6) {
error.makeText(this, "Password must contain more than 6 characters", Toast.LENGTH_SHORT).show();
return false;
} else {
return true;
}
}
}
public类MainActivity扩展了AppCompatActivity{
私人编辑文本名称、用户名、电子邮件;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
公共无效数据集(视图五){
编辑文本名称、用户名、电子邮件;
编辑文本密码,重新输入密码;
name=(EditText)findViewById(R.id.name);
用户名=(EditText)findViewById(R.id.username);
密码=(EditText)findViewById(R.id.password);
电子邮件=(EditText)findViewById(R.id.e_-mail);
name.setText(“”);
username.setText(“”);
password.setText(“”);
e_mail.setText(“”);
}
公共void doSubmit(视图){
布尔登录\验证\结果=false;
编辑文本名称、用户名、电子邮件;
编辑文本密码,重新输入密码;
name=(EditText)findViewById(R.id.name);
用户名=(EditText)findViewById(R.id.username);
密码=(EditText)findViewById(R.id.password);
电子邮件=(EditText)findViewById(R.id.e_-mail);
登录验证(登录验证结果);
if(登录\验证\结果==true){
Toast respond=新的Toast(此);
respond.makeText(这是“Success ful”,Toast.LENGTH_SHORT).show();
}
}
专用布尔登录验证(布尔验证){
Toast error=新Toast(此);
编辑文本名称、用户名、电子邮件;
编辑文本密码,重新输入密码;
name=(EditText)findViewById(R.id.name);
用户名=(EditText)findViewById(R.id.username);
密码=(EditText)findViewById(R.id.password);
电子邮件=(EditText)findViewById(R.id.e_-mail);
if((name.getText().toString())==“”){
错误.makeText(这是“请输入您的姓名”,Toast.LENGTH_SHORT).show();
返回false;
}如果((name.getText().toString().length())<2),则为else{
error.makeText(这是“名称应该有两个以上的字母”,Toast.LENGTH_SHORT).show();
返回false;
}else if((username.getText().toString())=“”){
错误.makeText(这是“请输入您的用户名”,Toast.LENGTH_SHORT).show();
返回false;
}else if((username.getText().toString().length())小于4){
error.makeText(这是“用户名应该有4个以上的字母”,Toast.LENGTH_SHORT).show();
返回false;
}else if((e_mail.getText().toString())=“”){
错误.makeText(这是“请输入您的电子邮件”,Toast.LENGTH_SHORT).show();
返回false;
}else if((e_mail.getText().toString())包含(“@”)==false){
error.makeText(这是“请输入有效电子邮件”,Toast.LENGTH_SHORT).show();
返回false;
}else if((e_mail.getText().toString())包含(“.com”)==false){
error.makeText(这是“请输入有效电子邮件”,Toast.LENGTH_SHORT).show();
返回false;
}如果((password.getText().toString())=“”),则为else{
错误.makeText(这是“请输入密码”,Toast.LENGTH_SHORT).show();
返回false;
}else if((password.getText().toString()).length()<6){
错误.makeText(此“密码必须包含6个以上字符”,Toast.LENGTH_SHORT).show();
返回false;
}否则{
返回true;
}
}
}
这是xml--
--谢谢 你能试试这个吗
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation_result = login_validation();
if (login_validation_result==true){
Toast.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
并删除登录验证中的参数
private boolean login_validation() {
// your stuff here
}
解释
据我所知,在login\u validation()
方法,但没有用,没有赋值,
所以它将保持原样,每次它的值都是false
。所以只需从参数中删除login\u validation\u result
。
您实现的这个方法将返回您想要的布尔值。因此,只需将该值分配给登录验证结果
。那就行了
你能试试这个吗
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation_result = login_validation();
if (login_validation_result==true){
Toast.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
并删除登录验证中的参数
private boolean login_validation() {
// your stuff here
}
解释
据我所知,在login\u validation()
方法,但没有用,没有赋值,
所以它将保持原样,每次它的值都是false
。所以只需从参数中删除login\u validation\u result
。
您实现的这个方法将返回您想要的布尔值。因此,只需将该值分配给登录验证结果
。那就行了
我不明白
布尔登录\验证(布尔验证){},…代码中的方法
1.为什么在方法中传递布尔变量,而在代码中不使用该参数
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation_result = login_validation(false/true);
if (login_validation_result==true){
Toast respond = new Toast(this);
respond.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
我不明白
布尔登录\验证(布尔验证){},…代码中的方法
1.为什么在方法中传递布尔变量,而在代码中不使用该参数