草庐IT

android - 单击按钮切换语言

当我点击“sub_changelang”按钮时,它应该将程序语言更改为法语。我得到以下代码来更改语言环境,但我不知道如何刷新/更新应用程序以将语言更改为法语。Buttoncl=(Button)findViewById(R.id.sub_changelang);cl.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Localelocale=newLocale("fr_FR");Locale.setDefault(locale);Configurationconfig=newConfigur

android - 应用程序android内部的语言切换

如何实现语言切换而无需在Android应用程序中手动设置区域设置?我知道该应用程序将在启动期间根据区域设置加载strings.xml,但我不希望根据系统区域设置进行此选择,而是让用户在设置中指定。或者,手动设置语言环境可以吗? 最佳答案 您可以扩展Application类(您也必须在list中声明它)并在其中放入类似的东西。每当你想更改语言时,你都可以调用((App)getApplicationContext()).changeLang(lang);来自您的Activity。R.string.locale_lang只是存储在stri

android - getRelativeTimeSpanString 的默认语言环境

我使用以下方法覆盖了我的应用的区域设置:Localelocale=newLocale("ca");Locale.setDefault(locale);Configurationconfig=newConfiguration();config.locale=locale;getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());但是getRelativeTimeSpanString似乎不适用于应用程序上下文,而是使用系统区域

android - 获取简体中文的语言环境变体

如何获得简体中文描述(简体)?从可用的区域设置Locale.SIMPLIFIED_CHINESE,似乎没有方法返回此描述:getDisplayLanguage()返回正确的语言名称,但没有变体。getDisplayName()返回正确的语言名称和国家/地区,但也没有变体。getDisplayVariant()返回空字符串。我还尝试使用不同的构造函数构建一个新的Locale,但也无济于事。newLocale("zh","CN");newLocale("zh","CN","Hans");我检查了AndroidsourcecodeforLocalePicker我得出的结论是loadedfro

Android Nougat 7.1 在启动 WebView 后重置 Locale

我们在AndroidN7.1(API-25)中遇到了一个奇怪的行为,即在启动WebView后,系统会强制将区域设置重置为设备区域设置。这会覆盖应用程序中使用的语言环境(用于本地化)。重现的简单方法是在应用程序上进行本地化。并启动WebView。然后您将不会再看到本地化内容,直到您再次重新启动应用程序。这仅发生在Android-7.1(API-25)上以下是我如何切换适用于所有API的语言环境:publicvoidswitchToCzLocale(){LocalemLocale=newLocale("cs","CZ");//itcanbeanyotherLocaleConfigurati

android - 更改语言环境后未调用 onConfigurationChange

我必须在一个fragment的语言更改时刷新fragment内容。所以我想到了在我的主要Activity中使用onConfigurationChange方法(这个Activity控制所有fragment)并在语言环境更改时重新创建所有fragment。但是在更改语言环境时不会调用此方法。我在list文件的Activity标签下包含了语言环境。onConfigurationChange在方向改变时被调用。我正在更改此链接中给出的语言ChangelanguageprogrammaticallyinAndroid及其工作原理。有人可以澄清解决此问题需要进行哪些更改。

android - 强制 Android DateUtils.getRelativeDateTimeString() 忽略设备区域设置?

我发现使用返回“昨天”或“2小时前”等值的android.text.format.DateUtils相关API非常好-但我的应用程序不支持所有Android语言做。因此,我默认使用英语,但对于我不支持的每种语言,相关字符串都会显示在设备设置中。例如,喜欢:上次尝试:11分钟。对于我不支持的任何语言,我想让API调用默认为英语。但是,我看不到任何地方可以为API调用设置区域设置-我希望我只是在某处遗漏了它。有没有办法只为API调用设置区域设置,而忽略设备设置? 最佳答案 这适用于Android7voidforceLocale(Loca

android - 希伯来语的语言环境代码/引用其他语言环境代码?

Android资源中希伯来语的语言环境代码是什么,例如字符串(values-XX)?在哪里可以找到其他代码?提前致谢。 最佳答案 Thelanguageisdefinedbyatwo-letterISO639-1languagecode,optionallyfollowedbyatwoletterISO3166-1-alpha-2regioncode(precededbylowercase"r").来自ProvidingResources根据链接表,he是希伯来语的限定词。注意:有些设备使用iw,如Error545在评论中指出,所以

android - 如何在 Android API < 21 中获取 IETF BCP47 语言代码

有没有什么巧妙的方法可以在Android中获取小于21的API的BCP47语言代码?在API级别21+中,Locale.toLanguageTag正是我所需要的。您将如何在较低的API级别获得它? 最佳答案 ApacheCordova的优秀人员为此开发了一个解决方案,如所见here.我将那里的代码修改为以下解决方案:/***Modifiedfrom:*https://github.com/apache/cordova-plugin-globalization/blob/master/src/android/Globalization

android - 如何在 Android 中获取用户选择的日期格式?

我一直在研究AndroidPhone用户选择的日期格式问题。我在stackoverlow上经历了几乎很多问题和答案,但还没有得到完美的答案。例如:-我在手机中选择的日期格式是“2011年12月31日星期六”但是当我使用在stackoverflow上回答的基础问题时:-DateFormatdf=android.text.format.DateFormat.getDateFormat(context.getApplicationContext());tv.setText(df.format(date));以上代码返回06/08/2011(mm/dd/yyyy)格式。但是请看我在手机上选择的