加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android:如何让App Locale独立于System Locale工作?

发布时间:2020-12-15 02:13:47 所属栏目:Java 来源:网络整理
导读:我有与显示语言相关的问题.我可以独立于OS系统更改应用程序内的语言(英语为“en”,日语为“ja”). 但是,问题是当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则应用程序会自动将语言更改为默认语言(“en”).我想让我的应用程
我有与显示语言相关的问题.我可以独立于OS系统更改应用程序内的语言(英语为“en”,日语为“ja”).

但是,问题是当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则应用程序会自动将语言更改为默认语言(“en”).我想让我的应用程序的语言环境独立,无论用户手动更改语言,应用程序的语言仍然与注销时保持一致.

编辑

有一些有用的链接,但他们仍然无法解决我的问题.例如:
Change language programatically in Android

你能给我任何建议去做吗?

先感谢您!

解决方法

Try this one:

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; 

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf,dm); 
    Intent refresh = new Intent(this,AndroidLocalize.class); 
    startActivity(refresh); 
    finish();
}

添加:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    newConfig.setLocale(yourLocale);
    super.onConfigurationChanged(newConfig);
}

中加入(2):

您必须设置android:configChanges =“layoutDirection | locale”才能在更改Locale时触发onConfigurationChanged().我不能完全理解为什么会发生这种情况,也许有一些RTL语言……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读