检查textView文本的if条件的结果

时间:2013-04-02 05:16:09

标签: android string text

如果条件检查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

问题是什么???

4 个答案:

答案 0 :(得分:2)

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

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

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

P.S:这里有一个 zillion 问题@ SO,它更详细地解释了这一点。为了更清晰,请参考它们。

答案 1 :(得分:2)

你是Java老兄,所以将相关的行改为:

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

答案 2 :(得分:1)

始终使用字符串值/ object的equals()比较字符串。

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

}....

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

答案 3 :(得分:1)

使用此

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

而不是使用

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