方法返回错误的值 - Android

时间:2013-12-31 01:43:47

标签: android android-edittext

为什么这个方法总是返回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吗?

1 个答案:

答案 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)