Android 语言切换
一般用 语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
各国语言缩写: http://www.loc.gov/standards/iso639-2/php/code_list.php
国家和地区简写: http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
用eclipse工具建多语言文件夹: http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html
切换语言主要分为两类:
1、根据系统当前语言环境自动选择程序加载语言,若不存在对应语言的strings文件,则加载默认语言文件
此方法不需要其他代码设置
2、程序内部自主选择程序使用语言,需要由代码控制
在OnCreate函数中调用
public void SwitchLanguage(Locale locale){
Resources resources = getResources();// 获得resource资源对象
Configuration config = resources.getConfiguration();// 获得Configuration设置对象
DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
config.locale = locale; // 简体中文
resources.updateConfiguration(config, dm);
// startActivity(new Intent(Sudoku.this, Sudoku.class)); // 重启当前的Activity才能生效!(死循环)
}
AndroidManifest.xml
每一个Activity中都要加: android:configChanges="locale"。(每一个未检测)
添加权限: <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
另外:</application>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
加 <supports-screens>是为了解决如下问题:
http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx