介绍
这篇文章给大家介绍android开发中怎么动态修改程序运行的语言,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
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 =,(按钮),findViewById (R.id.btn);//,按下按钮改变语言类型,在“简体中文”和“英文”之间切换 btnLang.setOnClickListener (new View.OnClickListener (), { @Override public void  onClick (View v), {//,获取当前语言环境(包含语言信息) Locale curLocale =, getresource () .getConfiguration () .locale;//,判断语言类型,有以下两种判断方式//,方法一,通过地区的=方法//,public boolean  equals (Object 对象),//,,,Returns true if object is a locale with 从而same 语言,,country 以及变异又是; if (curLocale.equals (Locale.SIMPLIFIED_CHINESE)), { setLang (Locale.ENGLISH); },{else setLang (Locale.SIMPLIFIED_CHINESE); }//,方法二,通过语言码,getLanguage()方法可以获得对应语言码//,public String  getLanguage (),//,Returns 从而language code  for 却;能够Locale 看,趁机empty string if no language was 设置只//if (curLocale.getLanguage () .equals (Locale.SIMPLIFIED_CHINESE.getLanguage ())), {//setlang (Locale.ENGLISH);//},{else //setlang (Locale.SIMPLIFIED_CHINESE);//} } }); } private void  setLang (Locale l), {//,获得res资源对象 Resources Resources =, getresource ();//,获得设置对象 Configuration config =, resources.getConfiguration ();//,获得屏幕参数:主要是分辨率,像素等。 DisplayMetrics dm =, resources.getDisplayMetrics ();//,语言 时间=config.locale l; resources.updateConfiguration(配置,dm);//,刷新活动才能马上奏了效 startActivity (new 意图().setClass (MainActivity.this, ,,MainActivity.class)); MainActivity.this.finish (); } @Override public boolean  onCreateOptionsMenu (Menu 菜单),{//,Inflate 从而;菜单,却;能够adds items 用,action bar if it is 礼物。 getMenuInflater () .inflate (R.menu.activity_main,菜单); return 真实; } }
通过下面一行代码获得当前语言信息
<强>地区curLocale=getresource () .getConfiguration () .locale; 强>
判断语言和设置语言部分有详细注释,就不做过多解释啦!
资源文件需要支持多语言环境,这样才能看到切换语言的效果!
关于android开发中怎么动态修改程序运行的语言就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。