今天才从别人博客上学来的,浅谈一下我的看法

代码可以从那位大神的博客上下载:

http://download.csdn.net/detail/qcooler/7052849



①:在res目录下建立values-en和values-zh-rCN文件,并各在每个文件下建立一个strings.xml文件,格式可以参考values/strings.xml。

values-en/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">LanguageSetting</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="chinese_btn">chinese</string><string name="english_btn">english</string><string name="yellow">yellow</string><string name="red">red</string><string name="gray">gray</string><string name="green">green</string><string name="orange">orange</string><string name="blue">blue</string><string name="black">black</string>
</resources>

values-zh-rCN/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">语言设置</string><string name="action_settings">设置</string><string name="hello_world">嗨 世界</string><string name="chinese_btn">中文</string><string name="english_btn">英文</string><string name="yellow">黄色</string><string name="red">红色</string><string name="gray">灰色</string><string name="green">绿色</string><string name="orange">橙色</string><string name="blue">蓝色</string><string name="black">黑色</string>
</resources>

②Androidmainfest.xml:

<activityandroid:name="com.example.languagesetting.MainActivity"android:configChanges="locale"<!-- 注意上面的一句话-->android:label="@string/app_name" ></activity>

③:在主布局文件中添加两个按钮,一个用来换成中文,一个用来换成英文
④:在MainActivity文件中:

public class MainActivity extends Activity {private Configuration config;private DisplayMetrics dm;private Resources resources;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);resources = getResources();// 获得res资源对象config = resources.getConfiguration();// 获得设置对象dm = resources.getDisplayMetrics();((Button) findViewById(R.id.chinese_btn)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubconfig.locale = Locale.SIMPLIFIED_CHINESE;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/}});((Button) findViewById(R.id.english_btn)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubconfig.locale = Locale.US;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/}});}}

MainActivity中的代码还没看懂嘿嘿

好像一般情况下,一个按钮控制中英文转换的,刚才我试了一下用sharepreference辅助加一个switch实现的,一开始我没有用switch而是用的if,但是就是实现不了看了半天也不是逻辑的问题,我觉得应该是oncreate()方法有点其他的猫腻,等偶解决了,再放代码~~

先传个switch的:

①先声明一个变量:
SharedPreferences sp = this.getSharedPreferences(“zwq”, Activity.MODE_PRIVATE);
②上传一个数据:
sp.edit().putString(“zwq”, “1”).commit();

③然后在一个按钮监听中添加以下代码:

switch (sp.getString("zwq", "1")) {case "1":sp.edit().putString("zwq", "0").commit();config.locale = Locale.US;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/break;case "0":sp.edit().putString("zwq", "1").commit();config.locale = Locale.SIMPLIFIED_CHINESE;resources.updateConfiguration(config, dm);onCreate(null);/*如果产生了其他的bug,用“recreate()”试试,具体解释向下看*/break;}

关于SharePreferences的更多知识点可以看我以前的博客哦


关于oncreate(null)这个方法很愁人,用这个方法不就相当于多启动了一个Activity,大部分的情况下是没有问题的。但是比如我用了画折线,跟oncreate密切相关的,结果就是两个Activity一起执行了。其实中英文转换了之后再刷新一个Activity就可以了,这个时候可以用recreate()来避免这个错误,重启当前Acitivty。重启的时候屏幕会闪一下的哦~

Android应用 中英文切换相关推荐

  1. android中英文切换功能,Android APP 中英文切换

    实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...

  2. android app英文 英文模式,Android APP 中英文切换

    实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...

  3. Android国际化-中英文切换

    不想废话,直接上干货 @Overrideprotected void attachBaseContext(Context newBase) {Locale newLocale;if (SPUtil.g ...

  4. Android实现中英文切换(”傻瓜式“操作)

    一.配置AndroidManifest文件 二.新建values-en-rUS和values-zh-rCN文件夹,并且在两个文件夹中都新建一个strings.xml文件 三.values.values ...

  5. android 错误中英互译,Android 中英文切换及遇到的问题

    Android 中英文切换及遇到的问题 背景:近期由于项目上的需求接受到了一个中英文切换需求.只需要在切换中英系统语言的时候改变app的名称为中文或英文就可以.关于如何实现这些可以参考如下文章: 实现 ...

  6. Android 中英文切换及遇到的问题

    Android 中英文切换及遇到的问题 背景:近期由于项目上的需求接受到了一个中英文切换需求.只需要在切换中英系统语言的时候改变app的名称为中文或英文就可以.关于如何实现这些可以参考如下文章: 实现 ...

  7. Android 中英文切换

    看似很复杂的中英文切换其实很简单,如果在做项目的工程中,首先要看一下项目设计的功能,看看有没有中英文,不然到后面操作的时候会非常麻烦,因为,你需要把项目里的每一个字都要放在string.xml文件里面 ...

  8. flutter 全选_Flutter ios 国际化(复制粘贴 中英文切换等问题)

    前提 在做flutter ios 国际化的时候遇到长按文本框崩溃的问题,然后google到一堆写法是重写cupertinoLocalization的奇怪做法,然后还千篇一律都是这么改的,其实不用那么麻 ...

  9. 安卓开发中英文切换需求

    其实不止是中英文,只是这个比较有代表性,什么语言都可以切换. 安卓里面控制语言就是新建包,在res里面新建values-zh-rCN和values-en-rUS,zh代表的是中文,en代表的是英文.把 ...

  10. Flutter学习:高德地图flutter插件增加中英文切换

    高德官方已经有Flutter插件,但在使用过程中发现并没有将中英文切换接口,所以只能在本地修改插件代码. Flutter插件修改 修改文件amap_flutter_map.dart,增加属性mapLa ...

最新文章

  1. Python Scrapy爬虫框架实战应用
  2. 「反向传播非你原创」,Jürgen发文直指Hinton不应获2019本田奖
  3. python怎么连接socket_python socket连接实现即时通讯
  4. Java黑皮书课后题第3章:**3.9(商业:检验ISBN-10)ISBN-10由10个个位整数d1d2d3d4d5d6d7d8d9d10组成,最后一位d10是校验和,输入前9个数,显示10位ISBN
  5. Golang学习---常用库
  6. JSP+Tomcat+SQL Server 2000+JDBC实现合同信息管理系统
  7. Win10提示不是有效的字体文件怎么解决
  8. 【算法】算法求出2个超大正数相加
  9. Citrix为什么要兼容第三方服务器虚拟化平台
  10. 欧拉系统安装+eSight安装
  11. 手动挡五个档位示意图_捷达档位示意图手动挡
  12. raid服务器怎么装win7系统安装,安装win7系统时怎么加载SATARAID驱动
  13. 论如何写好一篇需求报告(或者说产品报告)
  14. Android 引入高德地图 SDK
  15. Docker的安装与基本使用(一)---使用Docker的前提条件和三要素
  16. 医院常见报表统计思路整理
  17. 【机器学习】--机器学习之朴素贝叶斯从初始到应用
  18. (一)买基金的基础知识
  19. 回溯-LeetCode77. 组合(Python)
  20. 超神了!详细解析photoshop化妆品产品精修实战教程!

热门文章

  1. 设计过程(概要设计和详细设计)
  2. 网易2018校招机器学习算法工程师笔试卷
  3. 批量重命名图片,去除括号
  4. 通俗易懂专利分类、专利申请流程
  5. 手把手带你写 Vue 可视化拖拽页面编辑器
  6. ddr4 dqs 频率_ddr4
  7. matlab的grid网格线属性设置,修改网格线密度
  8. python docx 表格复制粘贴_python Word 表格转 Excel
  9. FME 应用cad处理
  10. win7下获取进程CPU,内存,IO等信息