android动态设置app当前运行语言的方法

android开发中有时候碰到切换语言的需求,这时候需要通过代码动态改变当前运行语言。

package com.example.androidtest; import java.util.Locale; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.util.DisplayMetrics; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnLang = (Button) findViewById(R.id.btn); // 按下按钮改变语言类型,在“简体中文”和“英文”之间切换 btnLang.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取当前Locale(包含语言信息) Locale curLocale = getResources().getConfiguration().locale; // 判断语言类型,有以下两种判断方式 // 方法一,通过Locale的equals方法 // public boolean equals (Object object) // Returns true if object is a locale with the same language, country and variant. if (curLocale.equals(Locale.SIMPLIFIED_CHINESE)) { setLang(Locale.ENGLISH); } else { setLang(Locale.SIMPLIFIED_CHINESE); } // 方法二,通过语言码,getLanguage()方法可以获得对应语言码 // public String getLanguage () // Returns the language code for this Locale or the empty string if no language was set. // if (curLocale.getLanguage().equals(Locale.SIMPLIFIED_CHINESE.getLanguage())) { // setLang(Locale.ENGLISH); // } else { // setLang(Locale.SIMPLIFIED_CHINESE); // } } }); } private void setLang(Locale l) { // 获得res资源对象 Resources resources = getResources(); // 获得设置对象 Configuration config = resources.getConfiguration(); // 获得屏幕参数:主要是分辨率,像素等。 DisplayMetrics dm = resources.getDisplayMetrics(); // 语言 config.locale = l; resources.updateConfiguration(config, dm); // 刷新activity才能马上奏效 startActivity(new Intent().setClass(MainActivity.this, MainActivity.class)); MainActivity.this.finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }

通过下面一行代码获得当前语言信息

Locale curLocale = getResources().getConfiguration().locale;

判断语言和设置语言部分有详细注释,就不做过多解释啦!

资源文件需要支持多语言环境,这样才能看到切换语言的效果!

创建values-en文件夹,并创建英文版的strings.xml文件。

以上这篇android动态设置app当前运行语言的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-23 05:28:36

android动态设置app当前运行语言的方法的相关文章

Android ActionBarActivity设置全屏无标题的方法总结

Android ActionBarActivity设置全屏无标题的方法总结 新建的Activity继承自ActionBarActivity,设置全屏无标题本来很简单的事,但是没想到app竟然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时!!! 原因是ActionBarActivity设置theme的时候只能使用v7包里的Theme.AppCompat***开头的主题,因此设置全屏无标题的话需要自定义个style: <style name="ActionBarFullScre

Android ActionBarActivity设置全屏无标题实现方法总结

Android  ActionBarActivity设置全屏无标题实现方法总结 前言: 新建的Activity继承自ActionBarActivity,设置全屏无标题本来很简单的事,但是没想到app竟然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时!!! 原因是ActionBarActivity设置theme的时候只能使用v7包里的Theme.AppCompat***开头的主题,因此设置全屏无标题的话需要自定义个style: <style name="ActionBarFu

Android开发设置RadioButton点击效果的方法

本文实例讲述了Android开发设置RadioButton点击效果的方法.分享给大家供大家参考,具体如下: 在安卓开发中用到底部菜单栏 需要用到RadioButton这个组件 实际应用的过程中,需要对按钮进行点击,为了让用户知道是否点击可这个按钮,可以设置点击后 ,该按钮的颜色或者背景发生变化. layout中这部分的代码为: <RadioButton android:id="@+id/radio_button0" android:layout_height="fill

Android动态设置多语言

动态设置多语言 效果图: 需求:在设置中添加一个可以设置语言的需求,点击选中的语言,就可以切换显示. demo代码: APP类:app初始化的时候获取保存的语言(没有就系统默认),设置语言. public class APP extends Application { private Object locale; @Override public void onCreate() { super.onCreate(); //设置语言 setLanguage(); } private void se

Android 动态设置控件获取焦点

之前写过一篇博客,简单的介绍了Android 隐藏EditText的焦点,之所以要隐藏EditText的焦点,是因为当应用在第一次进入某个Activity时,由于该页面中的EditText获取了焦点,致使键盘弹出,而影响了用户的体验. 今天扩展下之前的内容,简单介绍如何动态设置某个控件获取到焦点. 首先,定义页面布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to

Android动态设置RelativeLayout控件的高度例子

在做项目的时候其中一个需求是要求banner图的宽和高是1:1所以我需要获取手机屏幕的宽度然后动态的把高度值设置为手机屏幕宽度的值在这项目中就是设置RelativeLayout的高度值代码如下 mRllayoutBanner = (RelativeLayout) findViewById(R.id.rl_banner); WindowManager wm = this.getWindowManager(); int width = wm.getDefaultDisplay().getWidth(

.net 动态修改App.Config 和web.Config 方法

首先假设你的应用程序配置文件如下: <?xml version="1.0" encoding="utf-8" ?> <configuration>  <appSettings>     <add key="name" value="old"/>  </appSettings> </configuration>     Ok,那么如何在运行时去修改name的

百度输入法设置为默认输入语言的方法

  我们常常习惯使用某款输入法的时候,为了方便调用,就会将这款输入法设置为默认输入语言.比如,小编的使用习惯是,常常需要使用百度拼音输入法,因此,小编就希望把百度拼音输入法设置默认输入语言,那么,怎么把百度拼音输入法设置默认输入语言呢?一起来看看今天的教程! 1.电脑右下角输入法,点击右键,按键"设置"; 2.常规--选择你电脑上安装好的百度拼音输入法.记得要点击"确定"或者"应用"; 默认输入语言 这就是小编给大家带来的怎么设置百度拼音输入法为

Android中设置RadioButton在文字右边的方法实例_Android

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:ori