当前位置: 首页 > news >正文

Android APP内切换语言无感重启到当前界面

获取系统设置的语言

Locale.getDefault().getLanguage();

获取某个语言环境下的字符串

fun getLocalizedString(context: Context, lanCode: String, @StringRes resId: Int): String {var code = lanCodeif (code == FOLLOW_SYSTEM) {// 默认使用系统语言code = Locale.getDefault().languageif (code.isNullOrEmpty()) code = "en"}val config = Configuration(context.resources.configuration)config.setLocale(Locale.forLanguageTag(code))val localizedContext = context.createConfigurationContext(config)return localizedContext.resources.getString(resId)
}

无感重启所有Activity

fun restartAllActivity() {for (activity in listActivity) {val intent = activity.intentintent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)activity.finish()activity.overridePendingTransition(0, 0)activity.startActivity(intent)activity.overridePendingTransition(0, 0)}
}

APP内设置语言

重启所有Activity后,在BaseActivity的attachBaseContext中设置语言,注意写法

 public static Context getChangeLangContext(Context context) {Configuration configuration = new Configuration();configuration.setLocale(new Locale(getLanguageCode(context)));context.getResources().updateConfiguration(configuration, null);return context;}
public abstract class BaseActivity{@Overrideprotected void attachBaseContext(Context newBase) {super.attachBaseContext(LanguageUtils.getChangeLangContext(newBase));}
}

注意

如果跟随系统菜单不灵了,获取到的不是系统设置的语言,可能是设置语言的代码导致的问题,卸载APP重装就不会有这问题了。

http://www.lqws.cn/news/503335.html

相关文章:

  • Jenkins+Jmeter+Ant接口持续集成
  • 6.24_JAVA_微服务_Elasticsearch搜索
  • Temporal Join,一探究竟
  • 【服务器】教程 — Linux上如何挂载服务器NAS
  • GitHub Actions 的深度解析与概念介绍
  • 智能制造——解读基于AI框架的智能工厂设计思路【附全文阅读】
  • 【论文阅读 | CVPRW 2023 |CSSA :基于通道切换和空间注意力的多模态目标检测】
  • CSS 实现文本溢出省略号(三种主流方式,适配单行 多行)
  • PHP 华为云H5上传文件:临时链接上传文件和POST表单直传
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus Dify复用优秀 AI Agent 应用教程
  • Elasticsearch | 索引和模板字段管理:增加新字段的详细操作
  • 《C++初阶之类和对象》【初始化列表 + 自定义类型转换 + static成员】
  • React性能优化精髓之一:频繁setState导致滚动卡顿的解决方案
  • Jmeter接口自动化测试框架
  • 从零开始学习Spring Cloud Alibaba (一)
  • Gradio可视化构建聊天机器人
  • 开源模型应用落地-让AI更懂你的每一次交互-用Redis Stack与LangChain解锁大模型的长期记忆潜能(二)
  • 前端后端文件下载防抖实现方案
  • 【大模型学习】项目练习:套壳DeepSeek
  • 阿里最新开源:Mnn3dAvatar 3D数字人框架, 无需联网,本地部署可离线运行,支持多模态实时交互
  • 索引优化SEO帮助你的网站内容更快被搜索引擎发现
  • Python的GUI库选择指南(深度拓展)
  • C++ —— STL容器 —— vector的模拟实现
  • 【Java开发日记】我们详细地讲解一下 Java 异常及要如何处理
  • 快速sincos算法,stm32测试
  • 如何轻松地将照片从 iPhone 传输到计算机
  • 【LLaMA-Factory 实战系列】三、命令行篇 - YAML 配置与高效微调 Qwen2.5-VL
  • iOS应用开发中的性能调试与数据分析:一套完整实战工具流程
  • 学习threejs,使用kokomi、gsap实现图片环效果
  • AI智能化高效办公:WPS AI全场景深度应用指南