Android轻松实现多语言的方法示例

本文介绍了Android轻松实现多语言的方法示例,分享给大家,具体如下:

1.创建多语言包

2.首先在onCreate方法中调用此方法查看上一次保存的是什么语言

 public void setLanguage() {
    //根据读取到存放在sp里面的数据 进行设置
    Configuration configuration = getResources().getConfiguration();

    SharedPreferences sharedPreferences = getSharedPreferences("key", MODE_PRIVATE);
    int language = sharedPreferences.getInt("language", 0);

    switch (language) {
      case 0:
        configuration.setLocale(Locale.CHINESE);
        break;
      case 1:
        configuration.setLocale(Locale.ENGLISH);
        break;
    }
    getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
  }

3.点击某个按钮弹出选择框选择语言包

  btn_qiehuan.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        String[] strings = {"简体中文", "English"};
        //首次进入判断是否是中文语言
        int selected = getSharedPreferences("language", Context.MODE_PRIVATE).getInt("language", -1);
        if (selected == -1) {
          String defaultLanguage = Locale.getDefault().toString();
          if (defaultLanguage.equals(Locale.CHINESE.toString()) || defaultLanguage.equals(Locale.SIMPLIFIED_CHINESE.toString())
              || defaultLanguage.equals(Locale.TRADITIONAL_CHINESE.toString())) {
            selected = 0;
          } else {
            selected = 1;
          }
        }
        new AlertDialog.Builder(MainActivity.this)
            .setSingleChoiceItems(strings, selected,
                new DialogInterface.OnClickListener() {
                  //点击单选框某一项以后
                  public void onClick(DialogInterface dialogInterface, int i) {
                    SharedPreferences preferences = getSharedPreferences("language", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = preferences.edit();
                    editor.putInt("language", i);
                    editor.commit();
                    dialogInterface.dismiss();
                    //重启activity
                    finish();
                    Intent intent = new Intent(MainActivity.this, MainActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
                  }
                })
            .create()
            .show();
      }
    });

效果演示~~~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现app应用多语言切换功能

    最近在做一个多语言切换的功能,类似于微信的语言切换,搜了下资料基本上都是以下这种: 1. 实现的效果 和微信类似,在设置界面打开切换语言的界面,选择语言后重启 HomeActivity,语言切换完成,下次重新打开 App ,也是用户设置的语言. 2. 实现步骤  1). 添加多语言文件  在不同的 value 文件夹下(例如 value .value-en.values-zh-rTW 文件夹)添加不同语言的 string.xml 文件,我们的项目添加了英文.简体中文.繁体中文三种语言,如下图所示

  • Android app应用多语言切换功能实现

    本文实例为大家分享了Android app应用实现多语言切换功能,供大家参考,具体内容如下 1.添加多语言文件 在不同的 value 文件夹下(例如 value .value-en.values-zh-rTW 文件夹)添加不同语言的 string.xml 文件,我们的项目添加了英文.简体中文.繁体中文三种语言,如下图所示: Project模式: Android模式: 其中英文需要翻译,繁体如果没有专门翻译的话,可以找个简繁转换网站,直接将简体中文转成繁体中文,推荐一个网站: http://www

  • Android应用的多语言支持的实现方法

    软硬件环境 Windows 10 Android studio 2.3.2 OTT BOx with android 5.1.1 前言 App开发测试完成后就面临着应用上架,除了国内的上架渠道,android阵营上架Google play我觉得是必不可少的.这样的话,中英文支持就成了必须的功能点了.本文就来实现这个功能. 设置不同语言的资源文件 如有必要,res文件夹下的像drawable.layout.values等都需要做不同语言的处理,这里仅以values为例 values-en和valu

  • Android编程实现动态支持多语言的方法

    本文实例讲述了Android编程实现动态支持多语言的方法.分享给大家供大家参考,具体如下: 资源文件values/strings.xml中添加 <string name="current_language">English</string> <string name="test">test</string> 创建values-en文件夹,添加资源文件 strings.xml: <resources> <

  • Android轻松实现多语言的方法示例

    本文介绍了Android轻松实现多语言的方法示例,分享给大家,具体如下: 1.创建多语言包 2.首先在onCreate方法中调用此方法查看上一次保存的是什么语言 public void setLanguage() { //根据读取到存放在sp里面的数据 进行设置 Configuration configuration = getResources().getConfiguration(); SharedPreferences sharedPreferences = getSharedPrefer

  • Android P实现静默安装的方法示例(官方Demo)

    Android9.0无法通过以下两种方式实现静默安装: 1.runtime执行shell cmd 2.PackageInstall 反射机制 但是Google已经给我们推荐了相关的APIDemos,所以建议大家多看看源码~ 在frameworks/base/core/java/android/content/pm/PackageInstaller.java有段关于该类的介绍: The ApiDemos project contains examples of using this API: <c

  • Android使用ViewStub实现布局优化方法示例

    目录 实践过程 实现方式 知识点 实践过程 Hello,大家好啊,我是小空,今天带大家了解下动态加载控件ViewStub. 在平时开发中经常会遇到复杂布局,而每一个view都是会占据内存和消耗cpu的(即使再小,累计成多,一般嵌套7级以上就有明显的卡顿了),布局优化就是我们常做的任务之一,甚至是一块心病.所以我们工作中就要留意布局优化的手段,ViewStub就是其中之一. 大家应该听过merge标签,将某个布局文件的根布局写成merge的,然后对应的布局include引用,会默认不会引入merg

  • Android编程实现播放视频的方法示例

    本文实例讲述了Android编程实现播放视频的方法.分享给大家供大家参考,具体如下: 播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的.这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器. VideoView 的用法和 MediaPlayer 也比较类似,主要有以下常用方法: 方法名 功能描述 setVideoPath() 设置要播放的视频文件的位置. start() 开始或继续播放视频. pause() 暂停播放视频. res

  • Android编程实现播放音频的方法示例

    本文实例讲述了Android编程实现播放音频的方法.分享给大家供大家参考,具体如下: 在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单.下表列出了 MediaPlayer 类中一些较为常用的控制方法. 方法名 功能描述 setDataSource() 设置要播放的音频文件的位置. prepare() 在开始播放之前调用这个方法完成准备工作. start() 开始或继续播放音频.

  • Android编程实现抽屉效果的方法示例

    本文实例讲述了Android编程实现抽屉效果的方法.分享给大家供大家参考,具体如下: 今天在手机上实现了抽屉效果,其实很简单,但是效果却很酷. 首先在layout 下设置xml布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:l

  • Android编程操作手机通讯录的方法示例

    本文实例讲述了Android编程操作手机通讯录的方法.分享给大家供大家参考,具体如下: 手机通讯录的操作是经常被用到的,例如添加联系人,删除联系人或者取得联系人信息.类似的操作还有收藏夹的操作,下面就针对通讯录的操作来做个小例子.同样的这次也会使用到内容提供者的知识. 1. 要操作通信录就要得到授权,也就是读或者写通讯录的权力.这里也需要使用Junit <?xml version="1.0" encoding="utf-8"?> <manifest

  • Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import an

  • Android实现菜单关联activity的方法示例

    本文实例讲述了Android实现菜单关联activity的方法.分享给大家供大家参考,具体如下: 简介: 有时,程序需要单击某个个菜单来实现启动ing其他的activity(或者service) 这时就要通过 setIntent()方法将其与Intent关联在一起 实现效果: 具体实现方法: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedIns

  • Flutter调用Android和iOS原生代码的方法示例

    前言 本文主要给大家介绍了关于Flutter调用Android和iOS原生代码的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 分3个大步骤: 1.在flutter中调用原生方法 2.在Android中实现被调用的方法 3.在iOS中实现被调用的方法 在flutter中调用原生方法 场景,这里你希望调用原生方法告诉你一个bool值,这个值的意义你可以随意定,这里表示的意义是是否是中国用户. 你可以在flutter中设计好要调用的方法名称,这里就叫 isChinese 请

随机推荐