如何以编程方式抑制 Android 应用程序中的特定区域设置

发布于 2024-12-03 20:10:25 字数 368 浏览 2 评论 0原文

我们都知道 Android 应用程序在支持不同区域设置方面是高度可定制的。就我而言,我的应用程序当前支持 6 个区域设置,并且一切运行顺利。每当用户选择手机区域设置时,应用程序就会切换到另一个区域设置,并且所有菜单、消息均采用当地语言。

现在的问题是我希望以编程方式抑制应用程序中的特定区域设置,因为我将使用不同的渠道、定价政策等(并不总是通过 Android Market)在不同的国家/地区分发应用程序。因此,如果应用程序的目标用户是中国,则用户无法将语言环境切换为英语或法语。

最简单的方法就是从应用程序中删除其他区域设置资源 - 我明白这一点。但从源代码维护的角度来看,这不是很舒服,因此我更愿意采用某种编程方式来拒绝/抑制应用程序中的某些区域设置。

有什么想法吗?

All we know that Android application is highely customizable with respect to support of different locales. In my case my application currently supports 6 locales and everything works smooth. Whenever user selects phone locale, application switches to another locale and all menus, messages are in local languages.

Now question is in my desire to programmatically suppress specific locale(s) in application, since I'm going to distribute application in different countries using different channels, pricing policies and so on (not always through Android Market). So if application is intended for let say China - user couldn't switch locale to English or French.

Most simple way is just remove other locale resources from application - I understand that. But from point of source maintenance it's not very comfortable, so I would prefer to have some programmatic way for declining/suppressing of some locales in application.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

会发光的星星闪亮亮i 2024-12-10 20:10:25

使用此代码...

    private void callSwitchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics()); 
onCreate(null);
}

在该方法中,您传递您选择的语言代码...

Use this code...

    private void callSwitchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics()); 
onCreate(null);
}

In that mothods u pass your selected language code....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文