首页 > 移动平台 > 详细

Android APP 中英文切换

时间:2015-10-09 11:35:51      阅读:580      评论:0      收藏:0      [点我收藏+]

 

实习期间,师父要求做app的中英文切换,就顺便记录了下。

 

一、AndroidManifest.xml文件(清单文件)

在每个要切换语言的Activity下面添加:

android:configChanges="locale"

1 <activity
2             android:name="com.activity.RepairActivity"
3             android:configChanges="locale"
4             android:launchMode="singleTop"
5             android:screenOrientation="portrait"
6             android:windowSoftInputMode="adjustPan" >
7         </activity>

   添加权限: <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

二、创建一个英文的strings.xml文件,目录名为values-en

技术分享

 

values/strings.xml这个为默认语言,如果values-en目录下的strings.xml不存在,那英文就会选取默认语言。

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <string name="app_name">language</string>
4     <string name="action_settings">Settings</string>
5     <string name="alert_data_init">updating..</string>
6 </resources>

 

三、核心代码

 1 /**
 2      * 刷新语言
 3      */
 4     public void updateActivity(String sta) {
 5 
 6         // 本地语言设置
 7         Locale myLocale = new Locale(sta);
 8         Resources res = getResources();// 获得res资源对象
 9         DisplayMetrics dm = res.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
10         Configuration conf = res.getConfiguration();// 获得设置对象
11         conf.locale = myLocale;// 简体中文
12         res.updateConfiguration(conf, dm);
13         // startActivity((new Intent(this, TabActivity.class)));
14         // this.finish();
15     }

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)  方法.....
 

也可以调用此类

技术分享
 1 public class LanguageSettings {
 2 
 3     private static LanguageSettings language = null;
 4 
 5     private String currentLanguage = "zh";
 6 
 7     private LanguageSettings() {
 8     }
 9 
10     public static LanguageSettings getInstance() {
11         if (language == null) {
12             language = new LanguageSettings();
13         } else {
14 
15         }
16         return language;
17     }
18 
19     public String getCurrentLanguage() {
20         return currentLanguage;
21     }
22 
23     public void switchCurrentLanguage() {
24         if (currentLanguage.equals("zh")) {
25             currentLanguage = "en";
26         } else {
27             currentLanguage = "zh";
28         }
29     }
30 }
LanguageSettings
 1 // 切换成英文
 2                 if (LanguageSettings.getInstance().getCurrentLanguage()
 3                         .equals("zh")) {
 4                     updateActivity("en");
 5                     LanguageSettings.getInstance().switchCurrentLanguage();
 6                 } else {
 7                     // 切换成中文
 8                     updateActivity("zh");
 9                     LanguageSettings.getInstance().switchCurrentLanguage();
10                 }

LanguageSettings.getInstance().getCurrentLanguage() 给变量动态赋值的标识列,用于判断!(采用单例模式)

 

Android APP 中英文切换

原文:http://www.cnblogs.com/tutuskys/p/4863146.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!