我正在尝试一个简单的检查。如果字符串名称locale将“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”的内容,但条件中的代码正在执行。
答案 0 :(得分:2)
似乎问题不在于Android或逻辑,而是在JAVA中。 试试这个并告诉我们发生了什么
if(!locale.equals("en"))
{
//Your Code
}
答案 1 :(得分:2)
永远不要使用!=或==与字符串相关联。尝试等于这样的方法:
if(locale.equals("es"))
如果字符串locale和“es”包含相同的字符,则返回true 序列。因为equals()方法比较String对象内的字符。 ==运算符比较两个对象引用以查看它们是否引用相同的实例。
有关详细信息,请参阅What is the difference between == vs equals() in Java?。