Android轻松实现多语言的方法示例
作者:你在笑吗 发布时间:2023-02-17 19:33:38
标签:Android,多语言
本文介绍了Android轻松实现多语言的方法示例,分享给大家,具体如下:
1.创建多语言包
2.首先在onCreate方法中调用此方法查看上一次保存的是什么语言
public void setLanguage() {
//根据读取到存放在sp里面的数据 进行设置
Configuration configuration = getResources().getConfiguration();
SharedPreferences sharedPreferences = getSharedPreferences("key", MODE_PRIVATE);
int language = sharedPreferences.getInt("language", 0);
switch (language) {
case 0:
configuration.setLocale(Locale.CHINESE);
break;
case 1:
configuration.setLocale(Locale.ENGLISH);
break;
}
getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
}
3.点击某个按钮弹出选择框选择语言包
btn_qiehuan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] strings = {"简体中文", "English"};
//首次进入判断是否是中文语言
int selected = getSharedPreferences("language", Context.MODE_PRIVATE).getInt("language", -1);
if (selected == -1) {
String defaultLanguage = Locale.getDefault().toString();
if (defaultLanguage.equals(Locale.CHINESE.toString()) || defaultLanguage.equals(Locale.SIMPLIFIED_CHINESE.toString())
|| defaultLanguage.equals(Locale.TRADITIONAL_CHINESE.toString())) {
selected = 0;
} else {
selected = 1;
}
}
new AlertDialog.Builder(MainActivity.this)
.setSingleChoiceItems(strings, selected,
new DialogInterface.OnClickListener() {
//点击单选框某一项以后
public void onClick(DialogInterface dialogInterface, int i) {
SharedPreferences preferences = getSharedPreferences("language", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("language", i);
editor.commit();
dialogInterface.dismiss();
//重启activity
finish();
Intent intent = new Intent(MainActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
})
.create()
.show();
}
});
效果演示~~~
来源:http://www.jianshu.com/p/af20ae5e4816


猜你喜欢
- 本文实例为大家分享了安卓实现单行多列横向滚动,供大家参考,具体内容如下<GridLayout android:layou
- 本文实例讲述了java实现的RSA加密算法。分享给大家供大家参考,具体如下:一、什么是非对称加密1、加密的密钥与加密的密钥不相同,这样的加密
- String 不是简单类型,而是一个类,它被用来表示字符序列。字符本身符合 Unicode 标准,其初始化方式有两种。如:String gr
- 前言OkHttp是目前非常火的网络库,支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接,连接池减少请求延时,透明的G
- 短网址,忽然一下子就冒出来的东西,长长的一个URL,提交过去,出来就只有短短的一个URL了,看起来似乎挺神奇,其实简单分析一下,明白其中的原
- 1.介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方
- OAuth2简介OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个
- import java.io.BufferedInputStream;import java.io.BufferedOutputStream
- 在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作。然而在Java中除了提供LockAPI外还在语
- 智能终端设备的多点触控操作为我们带来了种种炫酷体验,这也使得很多A
- 前言smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smar
- 1. 引入当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象, 只有通过new关键字才会产生出对象,这时系统才会
- 文件上传大部分通过web前端判断后尾名或者service后端判断后尾名,这种操作具有一定的风险,比如:我可以将一个jsp页面,修改后尾名改成
- 前言MyBatis提供了9种动态SQL标签:trim、where、set、foreach、if、choose、when、otherwise、
- Java8的groupingBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map对集合按照单个属性分组、分组
- 1 需求Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQ
- 模拟ThreadLocal类实现:线程范围内的共享变量,每个线程只能访问他自己的,不能访问别的线程。package com.ljq.test
- 本文实例为大家分享了AndroidStudio简单实现BMI计算的具体代码,供大家参考,具体内容如下xml代码```xml<TextV
- 经典的Java基础面试题集锦,欢迎收藏和分享。问题:如果main方法被声明为private会怎样?答案:能正常编译,但运行的时候会提示”ma
- 安装JDK 向导进行相关参数设置。如图: 正在安装程序的相关功能,如图: 选择安装的路径,可以自定义,也可以默认路径。如图: 成功安装之