gpt4 book ai didi

java - if 和 else 语句在 java 的 onClick() 方法中不起作用

转载 作者:行者123 更新时间:2023-12-04 09:33:45 26 4
gpt4 key购买 nike

嘿,我是 android studio 的初学者,我刚刚开始构建 android 应用程序。现在我正在使用 java 构建一个应用程序,其中用户需要在使用应用程序之前创建一个帐户。如果用户单击创建按钮并且必填字段为空或如果密码和重新输入的密码不匹配,则必须在屏幕上显示相应的 toast 消息。但是如果这两种情况都不发生,我只希望用户继续下一个 Activity (单击按钮)。但是问题是当我测试应用程序时,我在给定的字段中输入了所有必需的信息,并且两个密码也都正确,但是我的应用程序没有显示下一个 Activity ,而是重复显示第一条 toast 消息。 。我也尝试过更改 if-else 语句,但没有任何效果。有人可以帮助我如何运行我的应用程序而没有这些问题吗?我的代码如下所列

package com.example.oneclickscanner;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class AccountActivity extends AppCompatActivity {

TextView accountLogo;
EditText edtUsername,edtPassword,edtConfirmPassword;
Button createButton,exitButton;

String userName = edtUsername.getText().toString();
String password = edtPassword.getText().toString();
String confirmPassword = edtConfirmPassword.getText().toString();

boolean enterRequiredFields = false;
boolean passwordMatching = true;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account);

accountLogo = findViewById(R.id.accountLogo);

edtUsername = findViewById(R.id.edtUsername);
edtPassword = findViewById(R.id.edtPassword);
edtConfirmPassword = findViewById(R.id.edtConfirmPassword);

createButton = findViewById(R.id.createButton);
exitButton = findViewById(R.id.exitButton);





createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(userName.equals("") || password.equals("") || confirmPassword.equals("")){
enterRequiredFields = true;
}else if(!userName.equals("") || !password.equals("") || !confirmPassword.equals("")){
enterRequiredFields = false;
}



if(!password.equals(confirmPassword)){
passwordMatching = false;
}else{
passwordMatching = true;
}


if(enterRequiredFields){
Toast.makeText(AccountActivity.this,"Please Enter the required Fields",Toast.LENGTH_SHORT).show();
}else if(!passwordMatching) {
Toast.makeText(AccountActivity.this,"Password don't Match",Toast.LENGTH_SHORT).show();
}else {
Intent intent = new Intent(AccountActivity.this,ModelAndLicenseInfo.class);
startActivity(intent);
}

}
});


exitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(AccountActivity.this,MainActivity.class);
startActivity(intent);
}
});
}
}

}

最佳答案

按照@Jimmy 的回答,您还需要修改您的 else-if条件,因为 仅当 userName , passwordconfirmPassword不是空字符串,条件enterRequiredFields应该做 false .
从,

   else if(!userName.equals("") || !password.equals("") || !confirmPassword.equals("")){
enterRequiredFields = false;
}
到,
   else if(!userName.equals("") && !password.equals("") && !confirmPassword.equals("")){
enterRequiredFields = false;
}


关于java - if 和 else 语句在 java 的 onClick() 方法中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62693285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com