-1

我正在尝试一个简单的检查。如果字符串名称语言环境具有“es”作为值。

public String locale = 
    Locale.getDefault().getLanguage().toLowerCase().toString();

// ...

Log.v(tag, "Idioma del sistema: «" + locale +"»");
if (locale != "es") {
    showDialog(R.string.warningTitleDialog, 
        "We are sorry that this tool is only available in Spanish " +
        "language. See Author menu item for more information. [" + 
        locale + "]");
    locale = "en";
}

adb logcat将“es”显示为字符串“locale”的内容,但条件内的代码正在执行。

4

2 回答 2

2

似乎问题不在于 android 或逻辑,这在 JAVA 中。试试这个,告诉我们发生了什么

if(!locale.equals("en"))
{
   //Your Code
}
于 2012-09-13T18:47:34.307 回答
2

切勿将 != 或 == 与字符串相关联。尝试这样的方法等于:

if(locale.equals("es"))

如果字符串 locale 和 "es" 包含相同的字符序列,这将返回 true。因为equals()方法比较的是String对象中的字符。== 运算符比较两个对象引用以查看它们是否引用同一个实例。

请参阅Java 中 == 与 equals() 之间的区别是什么?了解更多信息。

于 2012-09-13T18:57:40.377 回答