如果验证为真,则将值从注册传递到寄存器。这些是我得到的错误
错误:(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);
}}
答案 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) ;