当应用程序的语言发生变化时,如何强制android应用程序重新加载活动标题?为了您的信息,应用程序仅在旋转设备时重新加载标题。然而,活动的内容是使用适当的语言内容重新加载,没有问题,但活动标题!
在AndroidManifest.xml文件中,添加了android:configChanges =“locale”但没有成功。
<activity
android:name=".layout.MainActivity"
android:configChanges="locale"
android:label="@string/app_name" />
即使重写onConfigurationChanged事件也不起作用,
@Override
public void onConfigurationChanged(Configuration newConfig) {
// refresh your views here
super.onConfigurationChanged(newConfig);
this.setTitle(getResources().getString(R.string.app_name));
}
谢谢,
答案 0 :(得分:9)
同样的问题,通过在Activity onCreate
方法中强制ActionBar标签重新加载来解决:
PackageManager pm = getPackageManager();
try {
ActivityInfo ai = pm.getActivityInfo(this.getComponentName(), PackageManager.GET_ACTIVITIES|PackageManager.GET_META_DATA);
if (ai.labelRes != 0) {
getSupportActionBar().setTitle(ai.labelRes);
}
} catch (PackageManager.NameNotFoundException e) {
e.stacktrace();
}
答案 1 :(得分:1)
您需要在应用中添加标题的翻译,然后应用会根据用户设备语言自动更改您的标题...以下是如何向您的应用添加语言文件夹How to pragmatically switch between different language string resource folders in android?