关闭

Android 语言切换要点

6867人阅读 评论(2) 收藏 举报
分类:

 您可下载源码,运行看效果:点击打开链接

一)切换为英文的代码:

	Locale.setDefault(Locale.ENGLISH); 
	Configuration config = getBaseContext().getResources().getConfiguration(); 
        	config.locale = Locale.ENGLISH; 
        	getBaseContext().getResources().updateConfiguration(config
        		, getBaseContext().getResources().getDisplayMetrics());

这样,打开的子窗体的字串都会从value-en\string.xml中取字串。

二)android的多语言机制是string.xml:

 

value-en\string.xml为英语

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Switch Language test</string>
    <string name="title_activity_sub">Sub activity</string>
    <string name="hello_world">Author:canto123</string>
    <string name="Exit">Exit</string>
    <string name="Data">Data=</string>
    <string name="DataTip">Lost data after language switched</string>
</resources>

 

values\string.xml为默认语言,如果不存在value-en目录下的string.xml,英文也会取这里的字串

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">语言切换实验</string>
    <string name="hello_world">作者:杂货铺</string>
    <string name="menu_settings">Settings</string>
    <string name="Exit">退出</string>
    <string name="Data">数据=</string>
    <string name="title_activity_sub">子页面</string>
    <string name="DataTip">可以看到切换后,数据丢失</string>

</resources>


三)如果要当前页显示语言切换效果,则要重启当前页:

		Intent intent = new Intent();
		intent.setClass(this,MainActivity.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		startActivity(intent);

注意:这样做时,该页面中的变量值会被初始化--丢失原来的值

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22436次
    • 积分:462
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论