Android 仿支付宝设置app语言
2016-06-23 10:43
369 查看
第一次登录,进入app语言选择界面,默认选择系统默认语言,自己可以选择其他语言,保存设置,下次进入直接应用保存设置的语言。(这里只用了英文和中文)
直接贴代码:
若想要重新设置语言,就在跳转过来的时候清除设置:
直接贴代码:
public class LanguageChoiceActivity extends Activity { public static final String LANGUAGE = "language"; private CheckBox cb_ok; private RadioButton rb_english, rb_chinese; private String language; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 隐藏标题栏 */ requestWindowFeature(Window.FEATURE_NO_TITLE); /* 隐藏状态栏 */ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); /* 设定屏幕显示为横屏 */ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setContentView(R.layout.activity_language_choice); //初始化控件 setViews(); //设置监听事件 setListeners(); //初始化 language 的值 setLanguage(); } /** * 初始化 language 的值 */ private void setLanguage() { SharedPreferences share = getSharedPreferences(LANGUAGE, MODE_PRIVATE); String lan = share.getString(LANGUAGE, null); if (lan != null) { language = lan; switchLanguage(language); Intent intent = new Intent(LanguageChoiceActivity.this, LoginActivity.class); startActivity(intent); finish(); } else { //获取默认语言,判断是否选中按钮 String aDefault = Locale.getDefault().toString(); String adefault2 = aDefault.substring(0, 2); String english = Locale.ENGLISH.toString(); if (english.equals(adefault2)) { language = "en"; rb_english.setChecked(true); } else { language = "zh"; rb_chinese.setChecked(true); } } } /** * 初始化控件 */ private void setViews() { cb_ok = (CheckBox) findViewById(R.id.cb_ok); rb_english = (RadioButton) findViewById(R.id.rb_english); rb_chinese = (RadioButton) findViewById(R.id.rb_chinese); } /** * 设置监听事件 */ private void setListeners() { cb_ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switchLanguage(language); saveLanguage(); Intent intent = new Intent(LanguageChoiceActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); rb_english.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { language = "en"; } }); rb_chinese.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { language = "ch"; } }); } /** * 保存语言设置到 */ private void saveLanguage() { SharedPreferences share = getSharedPreferences(LANGUAGE, MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); editor.putString(LANGUAGE, language); editor.apply(); } /** * 改变系统语言 * 默认为中文 * * @param language */ private void switchLanguage(String language) { //设置应用语言类型 Resources resources = getResources(); Configuration configuration = resources.getConfiguration(); DisplayMetrics dm = resources.getDisplayMetrics(); if (language.equals("en")) { configuration.locale = Locale.ENGLISH; } else { configuration.locale = Locale.SIMPLIFIED_CHINESE; } resources.updateConfiguration(configuration, dm); } }
若想要重新设置语言,就在跳转过来的时候清除设置:
tv_back_language.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences sharedPreferences=getSharedPreferences(LanguageChoiceActivity.LANGUAGE,MODE_PRIVATE); SharedPreferences.Editor editor=sharedPreferences.edit(); editor.putString(LanguageChoiceActivity.LANGUAGE,null); editor.apply(); Intent intent=new Intent(LoginActivity.this,LanguageChoiceActivity.class); startActivity(intent); finish(); } });
相关文章推荐
- Android 内存泄露分析
- android json解析及简单例子
- IOS 中的 _cmd 代表本方法的名称
- IOS基础:深入理解Objective-c中@class的含义
- Android智能指针浅析
- Unity3d碰撞检测中碰撞器与触发器的区别
- android使用自己的字体文件
- Unity3d 小技巧
- 最流行的android组件大全
- Swift开篇014->自动引用计数(Automatic Reference Counting)
- 菜鸟 ——android开发,单击按钮之后跳转到另一个页面
- poj 2382 Apple Catching 入门dp
- HF集成AirKiss、微信局域网控制
- iOS 程序间跳转传参(支付和地图)
- Android中通过反射获取资源Id(特别用在自己定义一个工具将其打成.jar包时,特别注意资源的获取)
- android之TabWidget选项卡
- 使用Android studio Gradle 实现友盟多渠道打包
- cordova local notification sound not working in ios and andorid
- Android中LayoutParams的基本用法
- Android中Context详解 ---- 你所不知道的Context