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

时间:2015-10-30 15:19:31

标签: java android android-studio

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

  

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

我的代码在下面给出

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);
}}

4 个答案:

答案 0 :(得分:0)

您需要初始化这些变量。

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

答案 1 :(得分:0)

首先,最终变量必须带有值。永远不能改变:

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);

我建议您在不创建新变量的情况下正确删除最终模态和设置值:

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

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

答案 2 :(得分:0)

尝试修改您的代码:

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);

        }
    });

答案 3 :(得分:0)

您的代码中存在三个主要错误:

1-没有用正确的默认字符串初始化变量firstname,lastname,....

2-重新定义与firstname,lastname,....同名的String变量。 您可以轻松地删除if和else块中的“String”部分

3- 最重要的一个:当一切正常时,你会错过验证块(ifs和elses)上的最后一个条件。目前,无论用户输入了什么,您都将启动注册活动。所以,通常你的代码应如下所示:

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) ;