android中英文切换
来源:互联网 发布:淘宝话费红包怎么用 编辑:程序博客网 时间:2024/05/19 03:18
软件要做国际化,中英文切换少不了。这里软件只涉及中文和英文的切换。
由于后台服务器也要做国际化,所以我们app端在得到当前语言时,将当前语言存到sp文件中,请求服务器时,传递当前语言参数。
1.首先当我们安装我们软件的时候,就要根据手机当前系统语言去设置软件的语言环境。
建一个Myapplication类。在oncreate()中初始化语言。
public static String YUYAN = "";
public void onCreate() { super.onCreate(); instance = this; appContext = this; //获取手机系统语言设置,如果是中文就设置成英文 //判断用户是否是第一次登陆,第一次登陆使用系统的设置。以后都用应用自己设置的语言。 //判断sp文件是否存在 String isFisrst = (String) SpUtils.get(appContext, Constants.LAUGAGE, ""); //获取系统语言 String able = getResources().getConfiguration().locale.getCountry(); //判断此时的手机系统语言跟保存的时候一致。一致的话走else,否则走if String systemlanage = (String) SpUtils.get(appContext,Constants.SYSTEMLAUGAGE, ""); if (isFisrst.equals("") || !systemlanage.equals(able)) { if (able.equals("CN")) { zn(null); SpUtils.put(appContext, Constants.LAUGAGE, "0"); YUYAN = "0"; } else { en(null); SpUtils.put(appContext,Constants.LAUGAGE, "1"); YUYAN = "1"; } //第一运行时,记录下系统本地语言。 SpUtils.put(appContext, Constants.SYSTEMLAUGAGE, able); } else { String yueyan = (String) SpUtils.get(appContext, Constants.LAUGAGE, ""); //获取设置的语言 if (yueyan.equals("0")) { zn(null); YUYAN = "0"; } else if (yueyan.equals("1")) { YUYAN = "1"; en(null); } } }
en(null)和 zn(null)分别为设置app系统语言的方法。
/** * 设置英文 * * @param v */ public static void en(View v) { Resources resources = MyApp.getContextInstance().getResources();// 获得res资源对象 Configuration config = resources.getConfiguration();// 获得设置对象 DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。 config.locale = Locale.ENGLISH; // 英文 resources.updateConfiguration(config, dm); } /** * 设置中文 * * @param v */ public static void zn(View v) { Resources resources = MyApp.getContextInstance().getResources();// 获得res资源对象 Configuration config = resources.getConfiguration();// 获得设置对象 DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。 config.locale = Locale.CHINA; // 英文 resources.updateConfiguration(config, dm); }
<application android:name=".application.Myapplication" android:allowBackup="true" android:hardwareAccelerated="false" android:icon="@mipmap/android_template" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/TranslucentTheme">3.在app的设置选项中。实现中英文切换效果。
逻辑:1)一进入这个界面,根据sp文件中存储的中英文标识,设置当前被选中的按钮。
2)当点击中文按钮时,设置app系统语言为中文,并将中文存到sp文件中。
第一步:
@Override public void onCreate() { super.onCreate();//一进入设置界面就先根据app系统语言设置默认值。setLanguage();} private void setLanguage() { //已进入到设置界面,首先要给中英文设置初始值。 //如果是0第一次进入,则根据系统语言设置当前语言 //如果不是第一次进入,则根据手动设置的语言去设置此时的界面展示。是1,选中中文。是2选中英文。 if (yueyan.equals("")) { //获取系统语言 String able = getResources().getConfiguration().locale.getCountry(); if (able.equals("CN")) { rg.check(R.id.cb_chinese); } else if (able.equals("EN")) { rg.check(R.id.cb_english); } } else { if (yueyan.equals("0")) { rg.check(R.id.cb_chinese); } else if (yueyan.equals("1")) { rg.check(R.id.cb_english); } } }
第二步:
case R.id.cb_chinese: //要求点击中英文,切换之后还在当前界面。 //请求跟新语言的接口 cn(v); MyApp.YUYAN = "0"; SpUtils.put(this,Constants.LAUGAGE, "0"); final ProgressDialog pd = new ProgressDialog(this); pd.setMessage(getString(R.string.qiehuan)); pd.show(); //请求后台服务器,成功之后调到首页。pdg.dismiss(); break; case R.id.cb_english: //当点击按钮时,将语言改为英文 en(v); MyApp.YUYAN = "1"; SpUtils.put(this,Constants.LAUGAGE, "1"); final ProgressDialog pdg = new ProgressDialog(this); pdg.setMessage(getString(R.string.qiehuan)); pdg.show(); //请求后台服务器,成功之后调到首页。pdg.dismiss(); break;
阅读全文
0 0
- Android应用 中英文切换
- android开发中英文切换
- Android中英文切换
- Android中英文切换
- android中英文切换
- Android 应用(中英文)切换
- Android 应用(中英文)切换
- Android 应用(中英文)切换
- Android 应用(中英文)切换
- Android 应用(中英文)切换
- Android 中英文切换的实现。
- android横竖屏自由地切换中英文
- 中英文切换
- 中英文切换
- Android UI(编辑手机信息页面,中英文切换)
- 中英文输入方法切换
- 页面中英文切换
- Flash builder 中英文切换
- 阿丹学理财之财富认知
- kafka_producer接口(旧版)
- ajax,附带身份凭证的请求,withCredentials
- kubelet VolumeManager 流程
- CentOS 7 搭建ntp时钟服务器
- android中英文切换
- 连接数据库
- struts2中#$%的用法
- Caffe源码
- 跨域资源共享 CORS 详解
- 源码解读----之_kmeans_single_lloyd和_kmeans_single_elkan初始化质心的方法
- mybatis常用jdbcType数据类型对应java类型
- PullToRefreshScrollView+ListView
- 进程与线程,java多线程的应用