Java 如果验证为true,则将值从注册传递到寄存器

Java 如果验证为true,则将值从注册传递到寄存器,java,android,android-studio,Java,Android,Android Studio,如果验证为真,则将值从注册传递到寄存器。这些是我得到的错误 错误:(105,36)错误:变量firstName可能尚未初始化 错误:(106,36)错误:变量lastName可能尚未初始化 错误:(107,36)错误:变量mobile可能尚未初始化 错误:(108,36)错误:变量密码可能尚未初始化 错误:(109,36)错误:变量电子邮件可能尚未初始化 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 编译失败;有关详细信息,请参阅编译器错误输出 我的代码如

如果验证为真,则将值从注册传递到寄存器。这些是我得到的错误

错误:(105,36)错误:变量firstName可能尚未初始化 错误:(106,36)错误:变量lastName可能尚未初始化 错误:(107,36)错误:变量mobile可能尚未初始化 错误:(108,36)错误:变量密码可能尚未初始化 错误:(109,36)错误:变量电子邮件可能尚未初始化 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 编译失败;有关详细信息,请参阅编译器错误输出

我的代码如下

public class Signup extends Activity {

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

    final String firstName;
    final String lastName;
    final String mobile ;
    final String password;
    final String email;

    final EditText edt_Signup_FirstName;
    final EditText edt_Signup_LastName;
    final EditText edt_Signup_Mobile;
    final EditText edt_Signup_Password;
    final EditText edt_Signup_Email;

    Button btn_Signup_Register;

    edt_Signup_FirstName=(EditText)findViewById(R.id.edt_signup_first_name);
    edt_Signup_LastName=(EditText)findViewById(R.id.edt_signup_last_name);
    edt_Signup_Mobile=(EditText)findViewById(R.id.edt_signup_mobile);
    edt_Signup_Password=(EditText)findViewById(R.id.edt_signup_password);
    edt_Signup_Email=(EditText)findViewById(R.id.edt_signup_email);

    btn_Signup_Register=(Button)findViewById(R.id.btn_signup_register);


    btn_Signup_Register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //First Name
            if(edt_Signup_FirstName.length() <8){
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_FirstName.length()>=15){
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();
            }else if (edt_Signup_FirstName.length() <8 && edt_Signup_FirstName.length()>=15){
                String firstName = edt_Signup_FirstName.getText().toString();
            }
            //Last Name
            if(edt_Signup_LastName.length() <8){
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_LastName.length()>=15){
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();

            }else{
                String lastName = edt_Signup_LastName.getText().toString();
            }
            //Mobile
            if(edt_Signup_Mobile.length() == 10){

            }else{
                Toast.makeText(Signup.this, "ENTER ONLY 10 DIGIT NUMBER", Toast.LENGTH_SHORT).show();
            }
            String phone = String.valueOf(edt_Signup_Mobile);
            char c  = phone.charAt(0);
            if (c == '8' || c == '9' ||c =='7'){

            }else if( c == '0' ||c == '1' ||c == '2' ||c == '3' ||c == '4' ||c == '5' ||c == '6')
            {
                Toast.makeText(Signup.this, "INVALID NUMBER BEGINED with" +  " +c",Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_Mobile.length() == 10 && c == '8' || c == '9' ||c =='7'){
                String mobile = edt_Signup_Mobile.getText().toString();
            }
            //Password
            if(edt_Signup_Password.length() <4){
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_Password.length()>=15){
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_Password.length() <4 && edt_Signup_Password.length()>=15 ){
                String password = edt_Signup_Password.getText().toString();
            }
            //Email
            if(edt_Signup_Email.length() <8){
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
            }else if(edt_Signup_Email.length()>=25){
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 25 CHARACTER", Toast.LENGTH_SHORT).show();
            }else if (edt_Signup_Email.length() <8 && edt_Signup_Email.length()>=25){
                String email = edt_Signup_Email.getText().toString();
            }



            Intent i =new Intent(Signup.this,Register.class);
            i.putExtra("key_f",firstName);
            i.putExtra("key_l",lastName);
            i.putExtra("key_m",mobile);
            i.putExtra("key_p",password);
            i.putExtra("key_e",email);

            startActivity(i);

        }
    });
}}


public class Register extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);

    TextView txt_FirstName,txt_LastName,txt_Mobile,txt_Password,txt_Email;

    txt_Email =(TextView)findViewById(R.id.txt_email);
    txt_FirstName =(TextView)findViewById(R.id.txt_firstName);
    txt_LastName = (TextView)findViewById(R.id.txt_lastName);
    txt_Mobile = (TextView)findViewById(R.id.txt_mobile);
    txt_Password = (TextView)findViewById(R.id.txt_password);

    Intent i = getIntent();

    String firstname = i.getStringExtra("key_f");
    String lastname = i.getStringExtra("key_l");
    String mobile = i.getStringExtra("key_m");
    String password = i.getStringExtra("key_p");
    String email = i.getStringExtra("key_e");

    txt_Email.setText("EMAIL : " +email);
    txt_FirstName.setText("FIRSTNAME : " +firstname);
    txt_LastName.setText("LASTNAME : " +lastname);
    txt_Mobile.setText("MOBILE : " +mobile);
    txt_Password.setText("PASSWORD : " +password);
}}
公共类注册扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.signup);
最后一个字符串名;
最后一个字符串lastName;
最终字符串移动;
最终字符串密码;
最终字符串电子邮件;
最终编辑文本edt\u注册\u名字;
最终编辑文本edt\u注册\u姓氏;
最终编辑文本edt\u注册\u手机;
最终编辑文本edt\u注册\u密码;
最终编辑文本edt\u注册\u电子邮件;
按钮btn\u注册\u寄存器;
edt_Signup_FirstName=(EditText)findViewById(R.id.edt_Signup_FirstName);
edt_Signup_LastName=(EditText)findViewById(R.id.edt_Signup_last_name);
edt_Signup_Mobile=(EditText)findViewById(R.id.edt_Signup_Mobile);
edt\u注册\u密码=(EditText)findViewById(R.id.edt\u注册\u密码);
edt_Signup_Email=(EditText)findViewById(R.id.edt_Signup_Email);
btn\u注册\u寄存器=(按钮)findViewById(R.id.btn\u注册\u寄存器);
btn_Signup_Register.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//名字
如果(edt\u Signup\u FirstName.length()=15){
Toast.makeText(Signup.this,“最多可输入15个字符”,Toast.LENGTH_SHORT.show();
}else if(edt\u Signup\u FirstName.length()=15){
String firstName=edt\u Signup\u firstName.getText().toString();
}
//姓
如果(edt\u Signup\u LastName.length()=15){
Toast.makeText(Signup.this,“最多可输入15个字符”,Toast.LENGTH_SHORT.show();
}否则{
字符串lastName=edt\u Signup\u lastName.getText().toString();
}
//流动的
如果(edt_Signup_Mobile.length()=10){
}否则{
Toast.makeText(Signup.this,“仅输入10位数字”,Toast.LENGTH_SHORT.show();
}
String phone=String.valueOf(edt\u Signup\u Mobile);
char c=phone.charAt(0);
如果(c='8'| | c='9'| | c=='7'){
}如果(c='0'| | c='1'| | c='2'| | c='3'| | c='4'| | c='5'| | c='6')
{
Toast.makeText(Signup.this,“以“+”开头的无效数字”,Toast.LENGTH_SHORT.show();
}else if(edt|u Signup|u Mobile.length()==10&&c==8'| c==9'| c==7'){
字符串mobile=edt\u Signup\u mobile.getText().toString();
}
//密码
如果(edt_Signup_Password.length()=15){
Toast.makeText(Signup.this,“最多可输入15个字符”,Toast.LENGTH_SHORT.show();
}else if(edt\u Signup\u Password.length()=15){
字符串password=edt\u Signup\u password.getText().toString();
}
//电子邮件
如果(edt\u Signup\u Email.length()=25){
Toast.makeText(Signup.this,“最多可输入25个字符”,Toast.LENGTH_SHORT.show();
}否则如果(edt\u注册\u Email.length()=25){
字符串email=edt\u Signup\u email.getText().toString();
}
意向i=新意向(Signup.this,Register.class);
i、 putExtra(“钥匙f”,名字);
i、 putExtra(“key_l”,姓氏);
i、 putExtra(“key_m”,手机);
i、 putExtra(“钥匙”,密码);
i、 putExtra(“密钥”,电子邮件);
星触觉(i);
}
});
}}
公共类注册扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
TextView txt_名字、txt_姓氏、txt_手机、txt_密码、txt_电子邮件;
txt_Email=(TextView)findViewById(R.id.txt_Email);
txt_FirstName=(TextView)findViewById(R.id.txt_FirstName);
txt_LastName=(TextView)findViewById(R.id.txt_LastName);
txt_Mobile=(TextView)findViewById(R.id.txt_Mobile);
txt_密码=(TextView)findViewById(R.id.txt_密码);
Intent i=getIntent();
String firstname=i.getStringExtra(“key_f”);
字符串lastname=i.getStringExtra(“key_l”);
字符串mobile=i.getStringExtra(“key_m”);
字符串密码=i.getStringExtra(“key_p”);
字符串email=i.getStringExtra(“key_e”);
txt_Email.setText(“Email:+Email”);
txt_FirstName.setText(“FirstName:+FirstName”);
txt_LastName.setText(“LastName:+LastName”);
txt_Mobile.setText(“Mobile:+Mobile”);
txt_Password.setText(“密码:+密码”);
}}

您需要初始化这些变量

final String firstName = "";
final String lastName = "";
final String mobile = "" ;
final String password = "";
final String email = "";

首先,final变量必须用值初始化。而且永远不会改变:

final String firstName = "value";
final String lastName = "value";
final String mobile = "value" ;
final String password = "value";
final String email = "value";
接下来,您似乎想更改最终变量的值,但创建了从未使用过的新变量:

 else {
    String lastName = edt_Signup_LastName.getText().toString();
 }
然后放入未初始化的最终变量:

i.putExtra("key_f",firstName);
我建议您在不创建新变量的情况下删除最终mod并正确设置值:

 String firstName;
 ...
 else {
    firstName = i.putExtra("key_f",firstName);
 }

希望您能得到正确的结果。

尝试如下修改代码:

btn_Signup_Register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //First Name
            if (edt_Signup_FirstName.length() <8) {
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
                return;
            } if (edt_Signup_FirstName.length()>=15){
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();
                return;
            }
            String firstName = edt_Signup_FirstName.getText().toString();

            //Last Name
            if (edt_Signup_LastName.length() <8) {
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
                return;
            }
            if (edt_Signup_LastName.length()>=15) {
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();
                return;
            }
            String lastName = edt_Signup_LastName.getText().toString();

            //Mobile
            if (edt_Signup_Mobile.length() != 10) {
                Toast.makeText(Signup.this, "ENTER ONLY 10 DIGIT NUMBER", Toast.LENGTH_SHORT).show();
                return;
            }
            String phone = String.valueOf(edt_Signup_Mobile);
            char c  = phone.charAt(0);
            if (c == '8' || c == '9' ||c =='7') {

            } else if ( c == '0' ||c == '1' ||c == '2' ||c == '3' ||c == '4' ||c == '5' ||c == '6') {
                Toast.makeText(Signup.this, "INVALID NUMBER BEGINED with" +  " +c",Toast.LENGTH_SHORT).show();
                return;
            }
            String mobile = edt_Signup_Mobile.getText().toString();

            //Password
            if (edt_Signup_Password.length() <4) {
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
                return;
            }
            if (edt_Signup_Password.length()>=15) {
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 15 CHARACTER", Toast.LENGTH_SHORT).show();
                return;
            }
            String password = edt_Signup_Password.getText().toString();

            //Email
            if (edt_Signup_Email.length() <8) {
                Toast.makeText(Signup.this, "ENTER MINIMUM 8 CHARATER", Toast.LENGTH_SHORT).show();
                return;
            }
            if (edt_Signup_Email.length()>=25) {
                Toast.makeText(Signup.this, "CAN ENTER MAXIMUM 25 CHARACTER", Toast.LENGTH_SHORT).show();
                return;
            }
            String email = edt_Signup_Email.getText().toString();



            Intent i =new Intent(Signup.this,Register.class);
            i.putExtra("key_f",firstName);
            i.putExtra("key_l",lastName);
            i.putExtra("key_m",mobile);
            i.putExtra("key_p",password);
            i.putExtra("key_e",email);

            startActivity(i);

        }
    });
btn\u Signup\u Register.setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
//名字
如果(edt\u Signup\u FirstName.length()=15){
Toast.makeText(Signup.this,“最多可输入15个字符”,Toast.LEN
if(edittext_firstname.getText().toString() is not OK)
     //Show proper toast messages
else if (edittext_lastname.getText().toString() is not OK)
     // show proper toast messages
.
.
.
 else
     startActivity(Register) ;