android 使用kotlin 实现点击更换全局语言(中日英切换)
作者:吃饺子蘸醋吗 发布时间:2023-11-18 03:08:50
> 因为我的工作要用kotlin所以今天在这里给大家总结一下关于全局语言切换的kotlin语言实现实现,很简单,希望在这里可以帮助到有需要的同学,下面简单说一下实现步骤,会把运行截图放在最后<
注:在这里我要说一下,我知道kotlin不太普及,如果有的同学需要java版的,可以在通读一遍代码,了解了之后把kotlin转化为java,因为kotlin与java是互通的,代码的一些关键点,java语言该怎么写还怎么写,如果有不明白的可以留言
第一步:简单写一下选择语言的布局就好,会用到点击事件,因为我要用到三种语言,可以Button控件,TextView控件,都可以
第二步:可以看下面截图
1.右键res
2.new–>android resource file
3.输入filename,在下满local选择需要的语言
4.最后像这样,然后在里面输入所需要控件的语言,在xml空间中运用到,比如 android:text=“@strings/定义的名字”,注意这4个string里面所有控件的数量与名字都要相同
第二步:这里要用到CommonUtil工具类,因为kotlin与java是互通的,我把代码写在下面可以直接用
public class CommonUtil {
public static void configLanguage(Context mContext, String language) {
Configuration config = mContext.getResources().getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
if (language.equals("CHINESE")) {
config.locale = Locale.SIMPLIFIED_CHINESE;
} else if (language.equals("ENGLISH")) {
config.locale = Locale.US;
} else if(language.equals("JAPANESE")){
config.locale = Locale.JAPAN;
}else {
config.locale = Locale.SIMPLIFIED_CHINESE;
}
} else {
if (language.equals("CHINESE")) {
config.locale = Locale.CHINESE;
} else if (language.equals("ENGLISH")) {
config.locale = Locale.ENGLISH;
} else if (language.equals("JAPANESE")){
config.locale = Locale.JAPAN;
}else {
config.locale = Locale.CHINESE;
}
}
mContext.getResources().updateConfiguration(config, null);
}
}
第四步.然后在主页面进行跳转和调用,LanguageActivity就是需要改变控件语言的界面,下面会有activity_language界面代码
override fun onClick(v: View) {
when(v.id){
R.id.tvChinese->{
CommonUtil.configLanguage(this,"CHINESE")
startActivity<LanguageActivity>()
}
R.id.tvEnglish->{
CommonUtil.configLanguage(this,"ENGLISH")
startActivity<LanguageActivity>()
}
R.id.tvJan->{
CommonUtil.configLanguage(this,"JAPANESE")
startActivity<LanguageActivity>()
}
}
}
第五步:activity_language代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text1"
android:padding="10dp"
android:textSize="15sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text2"
android:padding="10dp"
android:textSize="15sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text3"
android:padding="10dp"
android:textSize="15sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text4"
android:padding="10dp"
android:textSize="15sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text5"
android:padding="10dp"
android:textSize="15sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text6"
android:padding="10dp"
android:textSize="15sp"
/>
</LinearLayout>
下面可以看一下整个的目录结构
运行截图:
#####代码地址
总结
以上所述是小编给大家介绍的android 使用kotlin 实现点击更换全局语言网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/weixin_42567731/article/details/103024991


猜你喜欢
- AOP概念的引入传统的登录原理:如上图所示这是一个基本的登录原理图,但是如果我们想要在这个登录之上添加一些新的功能,比如权限校验那么我们能想
- 本文实例讲述了Java实现把两个数组合并为一个的方法。分享给大家供大家参考,具体如下:在Java中,如何把两个String[]合并为一个?看
- 线程调用类对象在前面的示例中,我们为线程任务使用了通常的函数。实际上,我们可以使用任何可调用对象或者lambda函数,如下调用类对象的例子:
- 本文实例为大家分享了java通过PDF模板填写PDF表单的具体代码,包括图片,供大家参考,具体内容如下需要用到的java包: it
- 一 概述GC(Garbage Collection),在程序运行过程中内存空间是有限的,为了更好的的使用有限的内存空间,GC会将不再使用的对
- 1. 前言Spring除了IOC和DI,还有另一个杀手锏功能——Spring AOP。AOP是一种面
- 前言从繁到简是贯彻SSM学习过程的原始真解一.bean的加载控制在MVC的模式中,Spring控制着业务和功能的bean,SpringMVC
- Mybatis 逆向工程 逆向工程通常包括由数据库的表生成 Java 代码 和 通过 Java 代码生成数据库表。而Mybatis 逆向工
- 内存对齐的基本原则:结构(struct/class)的内置类型数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的起始位置
- 数据校验在web应用里是非常重要的功能,尤其是在表单输入中。在这里采用Hibernate-Vapdator进行校验,该方法实现了JSR-30
- 单元测试是编写测试代码,应该准确、快速地保证程序基本模块的正确性。JUnit是Java单元测试框架,已经在Eclipse中默认安装。JUni
- 目录前言I. 项目环境1. 项目依赖2. 配置II. 邮件发送1. 简单文本邮件发送2. html发送3. 添加附件4. Freemaker
- 这里直接给出C#类成员一般初始化顺序:子类静态字段子类静态构造子类实例字段父类静态字段父类静态构造父类实例字段父类实例构造子类实例构造为什么
- 1、来源random.nextInt() 为 java.util.Random类中的方法; Math.random() 为 java.lan
- 摘要在使用java做后台站点的开发张,图表和报表功能都是不可或缺 的。本文推荐了8款最精彩实用的Java图表应用,大部分图表应用的功能都类似
- Android 自定义标题栏的实例详解开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标
- 前言java 10 引进一种新的闪闪发光的特性叫做局部变量类型推断。听起来很高大上吧?它是什么呢? 下面的两个情景是我们作为 Java 开发
- 两种android图片裁剪方式,供大家参考,具体内容如下一、相机拍完照之后利用系统自带裁剪工具进行截取public static void
- 一、简介在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写
- 当我们使用Jmeter工具进行接口测试,可利用CSV Data Set Config配置元件,对测试数据进行参数化,循环读取csv文档中每一