Android代码资源的国际化
来源:互联网 发布:office办公软件教材 编辑:程序博客网 时间:2024/05/22 03:42
前言
我们在使用Android手机系统的时候经常在“设置”项里面会提供用户多种系统语言选择来进行语言切换,那么问题来了语言切换在开发中如何实现呢?接下来的时间我们就来讨论Android开发如何实现语言切换
首先在 res 文件夹下新建对应语言的 values 文件夹
常见的有:
zh_cn: 简体中文
zh_hk: 繁体中文(中国香港)
zh_tw: 繁体中文(中国台湾地区)
en-hk: 英语(香港)
en_us: 英语(美国)
en_gb: 英语(英国)
en_ww: 英语(全球)
ja_jp: 日语(日本)
ko_kr: 韩文(韩国)
在每个文件夹里放置一个strings.xml,strings.xml里是各种语言字符串。在项目运行时系统默认是调用的valuse中的Strings.xml,但我们可以通过代码来引用别的values来进行android的系统中进行语言切换
主要代码
/**
* 切换语言
*/
public void updateActivity(String sta){
// 本地语言设置
Locale myLocale;
if(sta=="default"){
myLocale = Locale.getDefault();
}else{
myLocale = new Locale(sta);
}
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
restart();
}
调用此方法,当我们传 "tw" 进去时语言就会切换成values-tw中的Strings.xml中的文字了,如果你这个strings.xml中写的是繁体语言就切换成繁体了
注意事项:
当我们语言切换成功后退回去会发现语言没有切换,还是之前的语言,那是因为虽然系统语言已经切换了但这些页面的文字之前已经加载出来了没实时刷新,这样我们只能在语言切换成功后用代码使之前加载的页面刷新
Intent it = new Intent(this, MainFragment.class); //MainActivity是你想要重启的activity
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
这样的话会执行主页面的onNewIntent();方法,然后我们在onNewIntent();方法中重启一下主页面就ok了
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
finish();
Intent i = new Intent(this, MainFragment.class);
startActivity(i);
}
}
没错android国际化就是这么简单,赶紧去试试吧
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化
- Android代码资源的国际化a
- Android的资源自适应与国际化
- 关于Android国际化的使用资源指定
- android 资源国际化 国家/地区 语言缩写代码
- android 资源国际化 国家/地区 语言缩写代码
- android 资源国际化 语言 国家/地区 缩写代码
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- 测试新团队如何开展工作
- Python如何调用新浪api接口的问题
- 找不到mysql服务
- hdoj 5480 Conturbatio 【思维】
- #5JAVA字符串StringBuffer 和StringBuilder和 String #
- Android代码资源的国际化
- 使用Ajax递归调用服务器端示例代码
- 用opencv画虚线框矩形
- VC 获取系统时间
- php单例模式应用于mysql数据库操作
- 英文投稿的一点经验
- Android加载图片导致内存溢出(Out of Memory异常)
- 椒盐噪声 中值滤波 高斯噪声 均值滤波
- 文章标题