Android 应用(中英文)切换
16lz
2021-01-23
应用软件走向国际化,都少不了 中英文切换!最近项目需要一个中英文切换按钮!
这里简单说下原理:就是有多个Strings文件,对应的选择,然后刷新当前的Activity!
一:AndroidManifest.xml 文件
看来组件的配置缺少不了它,的确很是重要.....
在每个需要切换的语言Activity 下面添加:
android:configChanges="locale"
<activity android:name="com.newentertainment.androidActivity" android:configChanges="locale" android:label="@string/app_name" android:theme="@style/concealTitle" >
二:创建一个英文的Strings.xml 文件,目录为: values-en
三:核心代码,切换语言
/** * 刷新语言 */public void updateActivity(String sta) {// 本地语言设置Locale myLocale = new Locale(sta);Resources res = getResources();DisplayMetrics dm = res.getDisplayMetrics();Configuration conf = res.getConfiguration();conf.locale = myLocale;res.updateConfiguration(conf, dm);startActivity((new Intent(this, TabActivity.class)));this.finish();}
String sta=getResources().getConfiguration().locale.getCountry() 用于判断当前的语言,
Locale.getDefault().getLanguage()
//语言:取到的比如中文为zh,英文为en,日文为ko;
Locale.getDefault().toString()
//具体的类别:比如繁体为zh_TW,简体为zh_CN。英文中有en_GB;日文有ko_KR。
把需要切换的Strings.xml对应的语言,传入到 updateActivity(String sta) 方法.....
*... 项目开发中按钮为一个,点击后,需要更改图片,这就需要判断,简单贴一段判断:
// 切换成英文if (LanguageSettings.getInstance().getCurrentLanguage().equals("zh")) {updateActivity("en");LanguageSettings.getInstance().switchCurrentLanguage();} else {// 切换成中文updateActivity("zh");LanguageSettings.getInstance().switchCurrentLanguage();}
LanguageSettings.getInstance().getCurrentLanguage() 给变量动态赋值的标识列,用于判断!(采用单例模式)
其中:LanguageSettings.java
然后在OnCreate() 加载启动的时候更改 按钮图片!
欢迎转载,注明出处!
更多相关文章
- C语言函数以及函数的使用
- [zz] Android 初始化语言(Android init Language翻译)
- Android之国际化(在程序内部强制转换语言)
- AIDL(android 接口描述语言)
- Android Fresco图片处理库用法API英文原文文档2-2(Facebook开源An
- Android获取语言及地区总结
- Android 各国语言缩写-各国语言简称
- 【翻译】(8-补丁1)Android接口定义语言(AIDL)
- (原创)Android入门教程(六)之------使用android SDk帮助文档(英