0

我正在将一个字符串从一个活动传递到另一个活动。我通过文本“maglist”。当我在下一个活动中记录该字符串时,它应该显示“maglist”。但是,如果我做了一个 if 语句,询问 string = "maglist" 是否应该为真,那么它只是转到 else 。我会告诉你:

第一个活动:

        Intent intentRefresh = new Intent(getApplicationContext(), com.fieldandrurallife.media.InternetRefresh.class);
        String list = "maglist";
        intentRefresh.putExtra("from", list);
        intentRefresh.putExtra("cat", cat);
        startActivity(intentRefresh);  

第二个活动:

    Intent iB = getIntent();        
    String from = iB.getStringExtra("from");
    if(from == "maglist"){
        Log.d("refresh", "From = " + from);
    } else {
        Log.d("refresh", "dident work" + from);
    }

当它应该是“maglist”时,我得到了“dident work maglist”的日志。先谢谢了。

4

9 回答 9

1

为了比较两个字符串,您应该string1.equals(string2);
string1==string2实际比较引用。

于 2013-08-20T10:49:04.523 回答
0

在java中比较字符串的正确方法

if(from.equals("maglist"))
   {
       ...
   }
于 2013-08-20T10:52:37.263 回答
0

试试if(from.equals("maglist"))。如果失败了,

尝试if(from.contains("maglist"))

于 2013-08-20T10:54:07.170 回答
0

要比较字符串,您应该使用 'equals':

if(from.equals("maglist")) {
// TO DO
}
else {
//To DO
}
于 2013-08-20T10:48:48.890 回答
0

您应该使用 isequal 方法而不是 "=="

from .equalsIgnoreCase("maglist")

它会工作

于 2013-08-20T10:48:53.720 回答
0

不要==用于比较字符串,而是使用 equals,例如:

if(from.equals("maglist")){
    ...
}

有关比较字符串的更多信息

于 2013-08-20T10:49:07.000 回答
0

您需要使用比较字符串equals,使用 if (from.equals("maglist"))

于 2013-08-20T10:49:57.193 回答
0

而不是 == 尝试 from.equals("maglist")

于 2013-08-20T10:50:42.727 回答
0

用下面的一个改变你的条件。

if(from.equals("maglist")){
        Log.d("refresh", "From = " + from);
    } else {
        Log.d("refresh", "dident work" + from);
    }

PS:- 您不能将字符串值与等号(==)符号进行比较,因为如果两个字符串对象相同,它们将始终返回 false。

于 2013-08-20T10:52:10.183 回答