gpt4 book ai didi

android - 为什么 getConfiguraton().locale 不匹配 locale.US?

转载 作者:行者123 更新时间:2023-11-30 03:27:26 24 4
gpt4 key购买 nike

当我的应用程序第一次启动时,我想检测用户的当前语言环境并相应地设置 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 不匹配?我应该改为匹配 Locale.toString() 吗?

最佳答案

您需要使用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

关于android - 为什么 getConfiguraton().locale 不匹配 locale.US?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com