android开发中有时候碰到切换语言的需求,这时候需要通过代码动态改变当前运行语言。
package com.example.androidtest;
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnLang = (Button) findViewById(R.id.btn);
// 按下按钮改变语言类型,在“简体中文”和“英文”之间切换
btnLang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取当前Locale(包含语言信息)
Locale curLocale = getResources().getConfiguration().locale;
// 判断语言类型,有以下两种判断方式
// 方法一,通过Locale的equals方法
// public boolean equals (Object object)
// Returns true if object is a locale with the same language, country and variant.
if (curLocale.equals(Locale.SIMPLIFIED_CHINESE)) {
setLang(Locale.ENGLISH);
} else {
setLang(Locale.SIMPLIFIED_CHINESE);
}
// 方法二,通过语言码,getLanguage()方法可以获得对应语言码
// public String getLanguage ()
// Returns the language code for this Locale or the empty string if no language was set.
// if (curLocale.getLanguage().equals(Locale.SIMPLIFIED_CHINESE.getLanguage())) {
// setLang(Locale.ENGLISH);
// } else {
// setLang(Locale.SIMPLIFIED_CHINESE);
// }
}
});
}
private void setLang(Locale l) {
// 获得res资源对象
Resources resources = getResources();
// 获得设置对象
Configuration config = resources.getConfiguration();
// 获得屏幕参数:主要是分辨率,像素等。
DisplayMetrics dm = resources.getDisplayMetrics();
// 语言
config.locale = l;
resources.updateConfiguration(config, dm);
// 刷新activity才能马上奏效
startActivity(new Intent().setClass(MainActivity.this,
MainActivity.class));
MainActivity.this.finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
通过下面一行代码获得当前语言信息
Locale curLocale = getResources().getConfiguration().locale;
判断语言和设置语言部分有详细注释,就不做过多解释啦!
资源文件需要支持多语言环境,这样才能看到切换语言的效果!
创建values-en文件夹,并创建英文版的strings.xml文件。
以上这篇android动态设置app当前运行语言的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# android
# 当前语言
# Android实现app应用多语言切换功能
# Android app应用多语言切换功能实现
# 详解Android更改APP语言模式的实现过程
# android 使用kotlin 实现点击更换全局语言(中日英切换)
# Android 7.0以上版本实现应用内语言切换的方法
# Android 系统语言切换监听和设置实例代码
# Android实现应用内置语言切换功能
# Android实现系统语言切换功能
# Android App中进行语言的切换
# 给大家
# 简体中文
# 就不
# 两种
# 中有
# 希望能
# 英文
# 按下
# 这篇
# 英文版
# 可以获得
# 小编
# 大家多多
# 多语言
# 主要是
# 这时候
# savedInstanceState
# onCreate
# super
# layout
相关文章:
建站之星如何快速更换网站模板?
如何设置并定期更换建站之星安全管理员密码?
香港服务器部署网站为何提示未备案?
建站之星后台密码如何安全设置与找回?
建站之星如何防范黑客攻击与数据泄露?
如何在阿里云高效完成企业建站全流程?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站DNS解析失败?如何正确配置域名服务器?
如何挑选最适合建站的高性能VPS主机?
如何在建站主机中优化服务器配置?
如何在七牛云存储上搭建网站并设置自定义域名?
如何做网站制作流程,*游戏网站怎么搭建?
大连 网站制作,大连天途有线官网?
如何通过可视化优化提升建站效果?
已有域名和空间如何快速搭建网站?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何通过智能用户系统一键生成高效建站方案?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
,在苏州找工作,上哪个网站比较好?
建站之星代理平台如何选择最佳方案?
如何撰写建站申请书?关键要点有哪些?
建站主机选择指南:服务器配置与SEO优化实战技巧
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
C++时间戳转换成日期时间的步骤和示例代码
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
建站VPS推荐:2025年高性能服务器配置指南
如何在万网ECS上快速搭建专属网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
香港网站服务器数量如何影响SEO优化效果?
为什么Go需要go mod文件_Go go mod文件作用说明
青岛网站建设如何选择本地服务器?
开心动漫网站制作软件下载,十分开心动画为何停播?
h5网站制作工具有哪些,h5页面制作工具有哪些?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
高端企业智能建站程序:SEO优化与响应式模板定制开发
网站图片在线制作软件,怎么在图片上做链接?
如何选择最佳自助建站系统?快速指南解析优劣
存储型VPS适合搭建中小型网站吗?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
已有域名如何免费搭建网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Android滚轮选择时间控件使用详解
相册网站制作软件,图片上的网址怎么复制?
音乐网站服务器如何优化API响应速度?
定制建站策划方案_专业建站与网站建设方案一站式指南
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
代购小票制作网站有哪些,购物小票的简要说明?
淘宝制作网站有哪些,淘宝网官网主页?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
*请认真填写需求信息,我们会在24小时内与您取得联系。