为什么我的代码的这部分不遵循循环?

时间:2015-01-21 03:47:45

标签: java android if-statement string

我正在开发一个应用程序,它从用户那里获取输入并将其添加到android中的列表视图中。

我决定制作一个控件以防止用户将空字符串添加到列表中,因为它会无用地混乱屏幕。我为此编写了这段代码。

    public void addClaims(View v){
    ClaimListController ct = new ClaimListController();
    EditText textView = (EditText) findViewById(R.id.add_claim_field);
    String added = textView.getText().toString();

    if (added != ""){
        final String t = format("added",added);
        ct.addClaim(new Claim(added));
        Toast.makeText(this, t, Toast.LENGTH_SHORT).show();
        textView.setText("");
        //Intent intent = new Intent(MainActivity.this, AddClaim.class);
        //startActivity(intent);
    }else{
        Toast.makeText(AddClaim.this,"Please type something before adding", Toast.LENGTH_SHORT).show();
    }
}
private String format(String string, String added) {
    String formats = string +" "+ added; 
    return formats;
}

但是,永远不会检查if(){}循环。我尝试将空字符串更改为" test"并在应用程序中添加测试,它仍然有效。是什么导致代码无法检查IFELSE条件?

我不是在问比较字符串。我在问这个问题为什么会发生。我没想到这是一个字符串比较问题。

2 个答案:

答案 0 :(得分:1)

您使用的if条件不会返回true。请改用:

if (!TextUtils.isEmpty(added))

答案 1 :(得分:0)

当你在任何类型的对象上使用!=运算符时,你比较引用,因为你在if语句中创建了一个新实例,引用总是不同。

您可以改用它 if(added.equals(""))