2013-04-02 22 views
1
的文本

有在if条件导致一些问题检查的TextView结果检查的TextView

的文字是这样的代码更解释

times.xml

<TextView 
      android:id="@+id/tiMinutesView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center"    
      android:text="--" 
      android:textColor="#3134E8" /> 

TimesActivity.java

TextView minView;         
    minView = (TextView) v.findViewById(R.id.tiMinutesView); 

    if (minView.getText().toString().trim() != "--") { 

     Toast.makeText(TimesActivity.this, 
       "OK", 
       Toast.LENGTH_LONG).show(); 
    } else { 
     Toast.makeText(TimesActivity.this, 
       "NO", Toast.LENGTH_LONG) 
       .show(); 
    } 

现在它应该返回false和二张开NO,因为它等于“ - ”实际上,但是它返回true,显示OK

问题是什么???

回答

2

始终使用equals()方法String比较。

if (!minView.getText().toString().trim().equals("--")) { 
.... 
} 

==用于比较对象引用。 equals()是用于比较价值的一个。

P.S: -有像数不胜数这里@ SO问题,其中更详细地解释这一点。请参考它们以获得更多清晰度。

+0

哦,不!的在同一瞬间!大声笑!我早了2秒哈哈! – Nezam

+0

@Nezam - 没有问题!让我们来决定吧,干杯! – SudoRahul

+0

不错!它的工作现在..那是因为我的PHP开发和新到Android 非常感谢:) –

2

你是Java的家伙,所以相关的行更改为:

if (minView.getText().toString().trim().equals("--")) 
    { 
    //write your code here. 
}... 
1

始终使用字符串值/对象的equals()方法比较字符串。

if(!minView.getText().toString().trim().equals("--")){ 

}.... 

这将比较值和minView.getText().toString().trim() != "--"这将比较两个字符串对象

1

使用本

if (!minView.getText().toString().trim().equals("--") 

instread使用

if (minView.getText().toString().trim() != "--")