为什么这个方法总是返回true,即使editTexts中什么都没有?
private boolean allFieldsFilledOut() {
boolean allFieldsFilledOut = false;
EditText name = (EditText) findViewById(R.id.editTextName);
EditText passWord = (EditText) findViewById(R.id.editTextPassWord);
EditText image = (EditText) findViewById(R.id.editTextProfilePicture);
if (name.getText().toString() != "" && passWord.getText().toString() != ""
&& image.getText().toString() != "") {
allFieldsFilledOut = true;
}
else {
allFieldsFilledOut = false;
}
return allFieldsFilledOut;
}
我一直想知道的一件事是,我根据每个用例的意图创建了这个活动几次。我是否引用旧活动的editTexts?我是否应该在展示新活动时杀死活动? findViewById(R.id.editTextName)
获取应用程序资源,但不引用此特定活动。还有另一种方法可以引用这些editTexts吗?
答案 0 :(得分:3)
比较字符串时,使用equals是比较字符串的值,使用==是比较字符串的地址
这意味着(name.getText()。toString())的地址!=(“”)的地址,以便它始终为真
name.getText().toString() != ""
如果要比较字符串的值,则需要使用equals
if (name.getText().toString().equals("") == false &&
passWord.getText().toString().equals("") == false &&
image.getText().toString().equals("") == false)