Android 应用(中英文)切换
2016-07-07 15:18
555 查看
应用软件走向国际化,都少不了 中英文切换!最近项目需要一个中英文切换按钮!
这里简单说下原理:就是有多个Strings文件,对应的选择,然后刷新当前的Activity!
一:AndroidManifest.xml 文件
看来组件的配置缺少不了它,的确很是重要.....
在每个需要切换的语言Activity 下面添加:
Android:configChanges="locale"
[java] view
plain copy
<activity
android:name="com.newentertainment.androidActivity"
android:configChanges="locale"
android:label="@string/app_name"
android:theme="@style/concealTitle" >
二:创建一个英文的Strings.xml 文件,目录为: values-en
![](https://img-blog.csdn.net/20130923232724109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3NfbGkxMTI2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
三:核心代码,切换语言
[java] view
plain copy
/**
* 刷新语言
*/
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() 用于判断当前的语言,
把需要切换的Strings.xml对应的语言,传入到 updateActivity(String sta) 方法.....
*... 项目开发中按钮为一个,点击后,需要更改图片,这就需要判断,简单贴一段判断:
[java] view
plain copy
// 切换成英文
if (LanguageSettings.getInstance().getCurrentLanguage().equals("zh")) {
updateActivity("en");
LanguageSettings.getInstance().switchCurrentLanguage();
} else {
// 切换成中文
updateActivity("zh");
LanguageSettings.getInstance().switchCurrentLanguage();
}
![](http://static.blog.csdn.net/images/save_snippets.png)
LanguageSettings.getInstance().getCurrentLanguage() 给变量动态赋值的标识列,用于判断!(采用单例模式)
其中: LanguageSettings.Java
然后在OnCreate() 加载启动的时候更改 按钮图片!
转自http://blog.csdn.net/cs_li1126/article/details/11918707
这里简单说下原理:就是有多个Strings文件,对应的选择,然后刷新当前的Activity!
一:AndroidManifest.xml 文件
看来组件的配置缺少不了它,的确很是重要.....
在每个需要切换的语言Activity 下面添加:
Android:configChanges="locale"
[java] view
plain copy
<activity
android:name="com.newentertainment.androidActivity"
android:configChanges="locale"
android:label="@string/app_name"
android:theme="@style/concealTitle" >
二:创建一个英文的Strings.xml 文件,目录为: values-en
三:核心代码,切换语言
[java] view
plain copy
/**
* 刷新语言
*/
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() 用于判断当前的语言,
把需要切换的Strings.xml对应的语言,传入到 updateActivity(String sta) 方法.....
*... 项目开发中按钮为一个,点击后,需要更改图片,这就需要判断,简单贴一段判断:
[java] view
plain copy
// 切换成英文
if (LanguageSettings.getInstance().getCurrentLanguage().equals("zh")) {
updateActivity("en");
LanguageSettings.getInstance().switchCurrentLanguage();
} else {
// 切换成中文
updateActivity("zh");
LanguageSettings.getInstance().switchCurrentLanguage();
}
![](http://static.blog.csdn.net/images/save_snippets.png)
LanguageSettings.getInstance().getCurrentLanguage() 给变量动态赋值的标识列,用于判断!(采用单例模式)
其中: LanguageSettings.Java
然后在OnCreate() 加载启动的时候更改 按钮图片!
转自http://blog.csdn.net/cs_li1126/article/details/11918707
相关文章推荐
- 我的Android进阶之旅------>解决Error:Could not find property 'compile' on org.gradle.api.internal.artifacts.
- Android 什么是AIDL?
- 【Android基础知识】Fragment和Activity通信
- Android数据存储SQLite数据库存储
- Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
- Android自定义增加系统服务和AIDL
- android自定义开关SwitchView
- Android权限一览
- 开源框架 EventBus 简单使用
- 手把手教你逆向分析 Android 程序
- android developer tiny share-20160707
- android developer tiny share-20160707
- android developer tiny share-20160706
- android developer tiny share-20160706
- android developer tiny share-20160705
- android developer tiny share-20160705
- android 解决vedeoView设置高度无效的问题
- 探讨:android项目开发 统筹兼顾 需要考虑的因素
- android studio gradle自动签名构建实现
- android developer tiny share-20160704