我有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:以编程方式更改语言所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)