当我的应用程序第一次启动时,我希望检测用户当前的区域设置,并相应地设置一个SharedPreference。我正在从getResources()抓取用户的当前区域设置,我理解这是在应用程序第一次启动时设置的:
// Set the locale
Locale locale = getResources().getConfiguration().locale;
if(locale != Locale.US)
{
Log.i("ActivityDownloader", "Locale: " + locale.toString() + ", (" + Locale.US.toString() + ")");
}不幸的是,我在控制台中看到日志条目的文本如下:
I/ActivityDownloader: Locale: en_US,(en_US)
为什么这两个地方不匹配?我是否应该与Locale.toString()匹配呢?
发布于 2013-08-02 19:15:29
您需要使用equals()方法。==和!=运算符对此不起作用。
Locale locale = getResources().getConfiguration().locale;
if(!locale.equals(Locale.US))
{
Log.i("ActivityDownloader", "Locale: " + locale.toString() + ", (" + Locale.US.toString() + ")");
}我相信这是因为==和!=将比较引用而不是值。请参阅https://stackoverflow.com/a/767379/935779
https://stackoverflow.com/questions/18024484
复制相似问题