Android如何实现中英文语言切换
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍Android如何实现中英文语言切换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码@Override protected void attachBas
千家信息网最后更新 2025年01月19日Android如何实现中英文语言切换
这篇文章主要介绍Android如何实现中英文语言切换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
代码
@Override protected void attachBaseContext(Context newBase) { Locale newLocale; if (SPUtil.getBoolean(newBase,"isEN")) { //设置英文 newLocale = Locale.ENGLISH; } else { //设置中文 newLocale = Locale.SIMPLIFIED_CHINESE; } Context context = MyContextWrapper.wrap(newBase, newLocale); super.attachBaseContext(context); }
是的,直接在你继承的BaseActivity里面重载(@Override)attachBaseContext方法即可。
里面有一个自定义的MyContextWrapper:
import android.content.Context;import android.content.ContextWrapper;import android.content.res.Configuration;import android.content.res.Resources;import android.os.Build;import android.os.LocaleList; import java.util.Locale; public class MyContextWrapper extends ContextWrapper { public MyContextWrapper(Context base) { super(base); } public static ContextWrapper wrap(Context context, Locale newLocale) { Resources res = context.getResources(); Configuration configuration = res.getConfiguration(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { configuration.setLocale(newLocale); LocaleList localeList = new LocaleList(newLocale); LocaleList.setDefault(localeList); configuration.setLocales(localeList); context = context.createConfigurationContext(configuration); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { configuration.setLocale(newLocale); context = context.createConfigurationContext(configuration); } return new ContextWrapper(context); }}
关于SPUtil,就是一个简单的SharedPreferences内容存取类:
import android.content.Context;import android.content.SharedPreferences; public class SPUtil { /** * 万能的put方法 (能存储String/int/boolean类型的值) * @param context * @param key * @param value */ public static void put(Context context, String key, Object value) { SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); SharedPreferences.Editor edit = sp.edit(); if (value instanceof String) { edit.putString(key, (String) value); } else if (value instanceof Integer) { //JDK1.7之后可以把引用数据类型转为基本数据类型 edit.putInt(key, (int) value); } else if (value instanceof Boolean) { edit.putBoolean(key, (boolean) value); } edit.apply(); } /** * 获取String * @param context * @param key * @return */ public static String getString(Context context, String key) { SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); return sp.getString(key, ""); } /** * 获取int * @param context * @param key * @return */ public static int getInt(Context context, String key) { SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); return sp.getInt(key, 0); } /** * 获取Boolean * @param context * @param key * @return */ public static boolean getBoolean(Context context, String key) { SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); return sp.getBoolean(key, false); } /** * 清空首选项 * * */ public static void clearData(Context context){ SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); sp.edit().clear().apply(); } }
代码到这里也就结束了,下面是添加国际化语言的简单步骤:
切记修改语言之后一定要重新加载页面,不然不会立即生效
SPUtil.put(SettingActivity.this,"isEN",isChecked);recreate();
以上是"Android如何实现中英文语言切换"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
语言
内容
类型
中英
切换
代码
数据
方法
篇文章
价值
兴趣
国际
小伙
小伙伴
就是
是的
更多
步骤
知识
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
java得到服务器时间
腾云网络技术有限公司
单点登录用一个数据库吗
智能网络技术开发产品
呼和浩特严查网络安全
35岁转行网络安全的路线
购买失败苹果服务器返回错误
python 数据库操作
落叶服务器
网络安全与执法是啥专业
群晖nas服务器好不好
默纳克服务器怎么看主板
如何防止程序员卸载数据库
大学生网络安全教育主要内容
湖南ios手机软件开发
MySQL 数据库连接满了
山西洋一网络技术
vc6数据库编程
电脑服务器指的是哪里
软件开发的为什么会掉头发
中山专业的模具制造管理软件开发
源服务器目前拒绝复制请求
宽城区网络技术服务诚信经营
函授报软件开发有用吗
如何更新apk文件的数据库
618 网络安全
软件开发应知应会百度文库
国泰安数据库有EDI数据嘛
无线网卡和服务器网卡差别
福建安全教育平台网络安全教育日