2015-01-21 95 views
-2

我正在从一个应用程序接受来自用户的输入并将其添加到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(){}循环。我尝试将空字符串更改为“测试”并在应用程序中添加测试,但仍然有效。什么导致代码不检查IFELSE条件?

我不问如何比较字符串。我在问为什么会出现这个问题。它不是我想它是一个字符串比较问题。

+0

你也可以检查它的长度,即textView.getText()。长度> 0 – Pavya 2015-01-21 03:53:31

回答

1

您使用的if条件不会返回true。使用这个代替:

if (!TextUtils.isEmpty(added)) 
+0

感谢这个工作。 – 2015-01-24 02:30:32

0

当您使用=操作上的任何类型的对象你比较引用因为你在if语句创建一个新实例的引用将永远是不同的。

你可以用这个来代替 if(added.equals(""))

相关问题