Android 变量";学生编号“;及;密码";可能没有被初始化?
Android Studio表示变量studentNumber和passWord可能尚未初始化。错误显示在这一行上:Android 变量";学生编号“;及;密码";可能没有被初始化?,android,variables,Android,Variables,Android Studio表示变量studentNumber和passWord可能尚未初始化。错误显示在这一行上: public class LoginActivity extends AppCompatActivity implements View.OnClickListener { public EditText studentNumber, passWord; //defining AwesomeValidation object public AwesomeValidation a
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
public EditText studentNumber, passWord;
//defining AwesomeValidation object
public AwesomeValidation awesomeValidation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
studentNumber = (EditText) findViewById(R.id.studentNumber);
passWord = (EditText) findViewById(R.id.passWord);
awesomeValidation.addValidation(this, R.id.studentNumber, "^[0-9]{9}", R.string.studentnumberError);
String regexPassword = ".{8,}";
awesomeValidation.addValidation(this, R.id.passWord, regexPassword, R.string.invalid_password);
signIn.setOnClickListener(this);
}
// Triggers when LOGIN Button clicked
@Override
public void onClick(View view) {
if (view == signIn) {
checkLogin();
}
}
public void checkLogin() {
// Get text from studentNumber and passWord field
final String studentNumber = studentNumber.getText().toString();
final String passWord = passWord.getText().toString();
// Initialize AsyncLogin() class with studentNumber and password
new AsyncLogin().execute(studentNumber,passWord);
}
}
有什么问题吗?这是表格的验证吗?谢谢。您得到的变量“studentNumber”和“passWord”可能尚未初始化? 因为字符串变量名和编辑文本名都相同,所以它们相互冲突 只需更改字符串变量名 用这个
final String studentNumber = studentNumber.getText().toString();
final String passWord = passWord.getText().toString();
而不是这个
final String studentNumber2 = studentNumber.getText().toString();
final String passWord2 = passWord.getText().toString();
您得到的变量“studentNumber”和“passWord”可能没有初始化? 因为字符串变量名和编辑文本名都相同,所以它们相互冲突 只需更改字符串变量名 用这个
final String studentNumber = studentNumber.getText().toString();
final String passWord = passWord.getText().toString();
而不是这个
final String studentNumber2 = studentNumber.getText().toString();
final String passWord2 = passWord.getText().toString();
在onClick方法中更改字符串变量名,它与edittext变量名冲突:
final String studentNumber = studentNumber.getText().toString();
final String passWord = passWord.getText().toString();
在onClick方法中更改字符串变量名,它与edittext变量名冲突:
final String studentNumber = studentNumber.getText().toString();
final String passWord = passWord.getText().toString();
由于字符串名和edittext名都是示例,因此出现错误。请像这样更改您的方法
public void checkLogin() {
// Get text from studentNumber and passWord field
final String studentNumberString = studentNumber.getText().toString();
final String passWordString = passWord.getText().toString();
// Initialize AsyncLogin() class with studentNumber and password
new AsyncLogin().execute(studentNumberString,passWordString);
}
}
由于字符串名和edittext名都是示例,因此出现错误。请像这样更改您的方法
public void checkLogin() {
// Get text from studentNumber and passWord field
final String studentNumberString = studentNumber.getText().toString();
final String passWordString = passWord.getText().toString();
// Initialize AsyncLogin() class with studentNumber and password
new AsyncLogin().execute(studentNumberString,passWordString);
}
}
更改字符串的变量名。变量名相互冲突。我也给出了答案。请参考它。更改字符串的变量名。变量名相互冲突。我也给出了答案。请参考。您也可以直接将其作为方法参数传递,因为将其存储在最终字段中没有任何值。是的。对的有很多方法可以实现这一点。你也可以直接将其作为方法参数传递,因为将它们存储在最终字段中没有任何价值。是的。对的有很多方法可以做到这一点。