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
相关文章:
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何在宝塔面板中修改默认建站目录?
大连网站设计制作招聘信息,大连投诉网站有哪些?
如何用低价快速搭建高质量网站?
Swift中循环语句中的转移语句 break 和 continue
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何快速搭建高效简练网站?
ppt制作免费网站有哪些,ppt模板免费下载网站?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
如何快速打造个性化非模板自助建站?
如何在阿里云购买域名并搭建网站?
高端网站建设与定制开发一站式解决方案 中企动力
如何快速搭建个人网站并优化SEO?
设计网站制作公司有哪些,制作网页教程?
建站之星展会模版如何一键下载生成?
临沂网站制作企业,临沂第三中学官方网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
建站之星安装需要哪些步骤及注意事项?
Bpmn 2.0的XML文件怎么画流程图
网站微信制作软件,如何制作微信链接?
建站ABC备案流程中有哪些关键注意事项?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何选择服务器才能高效搭建专属网站?
如何快速搭建高效WAP手机网站吸引移动用户?
如何快速搭建高效WAP手机网站?
制作销售网站教学视频,销售网站有哪些?
如何通过WDCP绑定主域名及创建子域名站点?
如何打造高效商业网站?建站目的决定转化率
成都响应式网站开发,dw怎么把手机适应页面变成网页?
制作旅游网站html,怎样注册旅游网站?
深圳网站制作案例,网页的相关名词有哪些?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何通过NAT技术实现内网高效建站?
创业网站制作流程,创业网站可靠吗?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
建站与域名管理如何高效结合?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过商城免费建站系统源码自定义网站主题?
如何有效防御Web建站篡改攻击?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何基于云服务器快速搭建个人网站?
如何选择适配移动端的WAP自助建站平台?
建站之星收费标准详解:套餐费用及年费价格表一览
建站主机服务器选购指南:轻量应用与VPS配置解析
如何用美橙互联一键搭建多站合一网站?
简历在线制作网站免费版,如何创建个人简历?
*请认真填写需求信息,我们会在24小时内与您取得联系。