Java Android登录页面工作不正常

Java 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

下面提供的代码是用于登录逻辑的,我的要求是在对用户进行身份验证后,应该显示toast,但我没有收到任何toast。 我无法追踪原因,任何帮助都是非常有价值的

下面是我的代码

MainActivity.class

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.为什么在方法中传递布尔变量,而在代码中不使用该参数

  • 此方法有一个布尔返回类型,并且您没有使用该参数