gpt4 book ai didi

java - 以编程方式更改应用程序资源语言后,SlidingTabLayout 的选项卡语言不会更改

转载 作者:行者123 更新时间:2023-11-30 05:04:56 25 4
gpt4 key购买 nike

我正在尝试向预构建的 Android 应用程序添加一些功能,其中之一是以编程方式更改应用程序语言。

我为更改应用程序的资源所做的是:在 onCreate 中为每个 Activity 执行此代码:

    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(Utils.getAppPreferences("LANG")));
res.updateConfiguration(conf, dm);
}

// static member functions to return the sharedpreference that holds app's current language
public static String getDeviceLanguage() {

return Locale.getDefault().getLanguage();
}


public static String getAppPreferences(String key) {
SharedPreferences sharedpreferences = AppController.getInstance().getSharedPreferences("AppPreferences", 0);
return sharedpreferences.getString(key, Locale.getDefault().getLanguage());
}

// and after all of this I am restarting MainActivity
Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
startActivity(intent);

我需要在阿拉伯语“ar”和英语“en”之间切换。资源中的所有语言均已提供翻译。所有资源都在更改除了仍然使用设备语言的 TabBarLayout 选项卡。

最佳答案

必须在设置内容 View 之前设置语言。如果那不可能,则通过新 Intent 重新启动 Activity 并完成旧 Activity 。

关于java - 以编程方式更改应用程序资源语言后,SlidingTabLayout 的选项卡语言不会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54737368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com