Android:以编程方式更改语言

Android:以编程方式更改语言,第1张

概述我有3个按钮来改变语言.所以我需要创建方法,我可以将监听器设置为按钮,这些按钮可以在每次按下时更改语言.我尝试了这个https://stackoverflow.com/a/2900144/1088229,但这样它只改变了一次语言环境,似乎这不再起作用了(如果我再次点击,它甚至没有响应).所以我在侦听器的末尾添加

我有3个按钮来改变语言.所以我需要创建方法,我可以将监听器设置为按钮,这些按钮可以在每次按下时更改语言.
我尝试了这个https://stackoverflow.com/a/2900144/1088229,但这样它只改变了一次语言环境,似乎这不再起作用了(如果我再次点击,它甚至没有响应).所以我在侦听器的末尾添加了changeLanguageListener(),因此刷新了侦听器.

那么没关系,我是如何解决它还是有另一种方式

private voID changeLanguageListener() {    final button butEn = (button) findVIEwByID(R.ID.button_language_en);    final button butLt = (button) findVIEwByID(R.ID.button_language_lt);    final button butRu = (button) findVIEwByID(R.ID.button_language_ru);    OnClickListener Listener = new OnClickListener() {        public voID onClick(VIEw v) {            button but = (button) v;            Resources res = getResources();            String current = res.getConfiguration().locale.getCountry();            Log.i("Current", current);            String localeString = new String(current);            if (but.equals(butEn)) {                localeString = "en";            } else if (but.equals(butLt)) {                localeString = "lt";            } else if (but.equals(butRu)) {                localeString = "ru";            }            Log.i("Clicked", localeString);            if (!current.equalsIgnoreCase(localeString) && localeString.length() > 0) {                // Change locale settings in the app.                displayMetrics dm = res.getdisplayMetrics();                androID.content.res.Configuration conf = res.getConfiguration();                conf.locale = new Locale(localeString.tolowerCase());                res.updateConfiguration(conf, dm);                  //refresh menu                setGrIDVIEw();                //added this line to get refreshed Listener                changeLanguageListener();            }                       }    };    butEn.setonClickListener(Listener);    butLt.setonClickListener(Listener);    butRu.setonClickListener(Listener);}

解决方法:

因此,由于只允许更改区域设置的两个活动(两个菜单模式),我只需在区域设置更改后立即重新启动Activity,因此所有内容都会刷新.没有找到任何其他更好的解决方案

总结

以上是内存溢出为你收集整理的Android:以编程方式更改语言全部内容,希望文章能够帮你解决Android:以编程方式更改语言所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1101146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存