Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用SharedPreferences编程改变应用程序语言和维护语言

用SharedPreferences编程改变应用程序语言和维护语言
EN

Stack Overflow用户
提问于 2020-06-14 01:24:16
回答 2查看 60关注 0票数 1

当在导航抽屉列表中单击语言名称时,我试图以编程方式更改应用程序语言。语言变化,但我无法维持当应用程序关闭。这里是我的setLocal方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void setLocale(String lang) {
        Locale locale = new Locale(lang);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

        SharedPreferences.Editor editor = getSharedPreferences(SHARED_PREFS,MODE_PRIVATE).edit();
        editor.putString(MY_LANG,lang);
        editor.apply();
    }

当我想要像这样改变朗的时候,我调用这个方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
              if (id == R.id.ar_lang){
                    setLocale("ar");
                    recreate();
                }
                if (id == R.id.eng_lang){
                    setLocale("en");
                    recreate();
                }

我在onCreate中调用这个方法来获取存储的语言,但是它不起作用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void loadLocale(){
        SharedPreferences prefs = getSharedPreferences(SHARED_PREFS, Activity.MODE_PRIVATE);
        String languages =  prefs.getString(MY_LANG,"");
        setLocale(languages);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-14 02:17:36

我正在使用https://stackoverflow.com/a/34675427/519334在运行时更改应用程序语言。

我在onCreate中调用这个方法来获取存储的语言,但是它不起作用。

如果在调用loadLocale() super.OnCreate()之前已经完成了(super.OnCreate()super.OnCreate),那么我的解决方案会工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    loadLocale();
    super.onCreate(savedInstanceState);
    ... initialize
}
票数 1
EN

Stack Overflow用户

发布于 2020-06-14 01:40:34

您应该将新配置的上下文传递给您的活动。

使用这个LocaleHelper (用Kotlin编写,但也是用Java自己编写的)

然后在您的活动中调用此方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
override fun attachBaseContext(newBase: Context?) {
    super.attachBaseContext(LocaleHelper.onAttach(newBase!!))
}

override fun applyOverrideConfiguration(overrideConfiguration: Configuration?) 
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP 
          && Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1) {
        // update overrideConfiguration with your locale
        overrideConfiguration?.setLocale(LocaleHelper.getCurrentLocale(this))
        overrideConfiguration?.setLayoutDirection(LocaleHelper.getCurrentLocale(this))
    }
    super.applyOverrideConfiguration(overrideConfiguration)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62370649

复制
相关文章
自然语言和编程语言关系
说起自然语言,大家都不陌生,像英语、日语、俄语、德语、法语等,尤其像英语是学习频率最高的语种之一。
啦啦啦
2019/02/17
1.4K0
自然语言和编程语言关系
工业机器人的编程语言和种类
机器人的开发语言一般为C、C++、C++ Builder、VB、VC等语言,主要取决于执行机构(伺服系统)的开发语言;而机器人编程分为示教、动作级机器人编程语言、任务级编程语言三个级别;机器人编程语言
机器人网
2018/04/20
3.3K0
工业机器人的编程语言和种类
从0学Java(一)编程语言和软件
当然在现实生活中想要别人执行你的命令,首先得让对方听懂你说的话,计算机也一样,但计算机只能听懂16进制。
Java极客技术
2022/12/04
1.1K0
从0学Java(一)编程语言和软件
一文说清脚本语言和编程语言的区别?!
也就是说,脚本语言是解释执行的,例如有一款专用的软件,而这款专用的软件上面执行特定的操作才能和我的软件进行交互
网络安全自修室
2022/12/06
1.5K0
一文说清脚本语言和编程语言的区别?!
同时用R语言和Python爬取知乎美图
学习Python已有两月有余,是时候检验下学习效果了,之前练习了不少R语言数据爬取,Python的爬虫模块还没有来得及认真入门,乱拼乱凑就匆忙的开始了,今天就尝试着使用R+Python来进行图片爬取,
数据小磨坊
2018/04/11
1.2K0
同时用R语言和Python爬取知乎美图
GN语言和操作
GN语法 设计理念 编写构建文件不应该是一个创造性的努力。理想情况下,两个人应该产生相同的构建文件来实现相同的需求。除非绝对需要,否则不应有任何灵活性。做越多的事情越可能产生致命的错误。 定义应该比代码更像代码。我不想编写或调试Prolog。但是我们团队的每个人都可以编写和调试C ++和Python。 构建语言应该被视为构建应该如何工作。表达任意事物不一定容易甚至不可能。我们应该改变源代码和工具,使构建变得更简单,而不是把所有事情都变得更复杂以符合外部要求(在合理的范围内)。 在有意义的时候就像Blaze一
Rice加饭
2022/05/10
1.7K0
c语言和python区别
除了在语法使用上面的区别外,c语言和python的本质区别可能是在其语言性质上面的区别。
Twcat_tree
2022/12/05
8600
内核编程与应用程序开发的主要区别是_内核编程用什么语言
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
7230
java语言和C语言的区别
1在运行方式上: C:原始的C是面向过程的.就是按行执行. JAVA:绝对的面向对象.就像按模块执行. (补充:当然,在C++,及C#上,C也有向面向对象模式转换) 2在语句结构上: C:在中国应该算是编程语言的颠峰应用.C就像个完全服从的军人.你让他做什么他就做什么.你完全控制他,但你必须全程了解他之后才能控制好他.
全栈程序员站长
2022/09/08
1K0
编程知识科普--(2)什么是计算机编程中的低级语言和高级语言
我们常常听到高级语言,低级语言等等,但是只是一知半解,比如Java和C等等是高级语言,而汇编是低级语言,那么他们之间的区别是什么呢,我从网上总结了一些观点,有助于大家的理解,有不足和错误之处可以在公众号里留言,我会及时回复!
浩Coding
2019/07/02
2.5K0
编程知识科普--(2)什么是计算机编程中的低级语言和高级语言
编程知识科普--解释性语言和编译型语言的区别和不同
解释性语言和编译型语言的区别和不同 解释性语言编译型语言概念计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。特征解释性语言的程序不要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性Java语言,专门有一个解释器可以直接执行Java程序,每一个语句都是执行的时候才能翻译。这样解释性语言每执行一次要翻译一次,效率表较低。编译型就是编译的时候直接编译成机器
浩Coding
2019/07/02
1.5K0
编程知识科普--解释性语言和编译型语言的区别和不同
rust语言和cargo介绍
Cargo 是Rust的 包经理。Cargo 会下载 Rust 的包依赖项,编译您的包,生成可分发的包,并将它们上传到crates.io - Rust 社区的包注册表。
李小白是一只喵
2020/10/30
1.1K0
rust语言和cargo介绍
2.1 Arduino语言和结构
Arduino 采用C/C++混合编程,Arduino将单片机支持库进行二次封装,形成自己的API
喵叔
2020/09/08
6030
C语言和图形界面编程打造——浪漫的表白程序
#include #include #include #include #include #include #pragma comment ( lib, "Winmm.lib" ) /***** 宏定义区 ******/ #define NUM13// 烟花种类数量宏定义 /***** 结构定义区 **********/ // 烟花结构 struct FIRE { int r;// 当前爆炸半径 int max_r;// 爆炸中心距离边缘最大半径 int x, y;// 爆炸中
卜卜-Totoro
2020/01/09
6.3K0
西门子scl语言和c语言,西门子SCL语言编程学习心得[通俗易懂]
Temporary Variables VAR_TEMP declaration list
全栈程序员站长
2022/11/10
1.4K0
解释型语言和编译型语言
在计算机编程中,解释型语言和编译型语言是两种常见的语言类型,两者的区别在于代码的执行方式。
玖叁叁
2023/04/17
9900
改变未来IT世界的十种编程语言:Go语言
这里要说的都是革新,说这些的目的就是要保持关注最新技术。如果你是一个程序员,想要探寻未来技术,那这篇文章就是你的必读之选。我们这里列出了10种编程语言,10种将会改变IT世界工作方式的编程语言。这些语
李海彬
2018/03/19
1.9K0
改变未来IT世界的十种编程语言:Go语言
点击加载更多

相似问题

android -通过编程改变语言和国家

11

编程语言和设计模式

51

用PHP语言和MySQL进行事件编程

21

从右到左语言和编程问题

13

函数编程语言和裸机代码?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文