Android getStringExtra问题

时间:2013-08-20 10:44:33

标签: android string logging if-statement android-activity

我将一个字符串从一个活动传递给另一个活动。我传递了文本“maglist”。当我在下一个活动中记录字符串时,它会说“maglist”应该这样做。但是,如果我做一个if语句,询问string =“maglist”那么当它应该是真的时,它就会转到else。 Il告诉你:

第一项活动:

        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”的日志 困惑。谢谢你提前。

9 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

if(from.equals("maglist")) {
// TO DO
}
else {
//To DO
}

答案 2 :(得分:0)

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

from .equalsIgnoreCase("maglist")

它会起作用

答案 3 :(得分:0)

不要使用==来比较字符串,而是使用等号,例如:

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

More about compare strings

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

用下面的一个改变你的状况。

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

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

答案 7 :(得分:0)

正确比较java中的字符串

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

答案 8 :(得分:0)

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

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