如何强制Android应用程序重新加载与语言更改相对应的活动标题?

Abd*_*aan 5 multilingual android android-manifest android-titlebar

当应用程序的语言发生变化时,如何强制android应用程序重新加载活动标题?为了您的信息,应用程序仅在旋转设备时重新加载标题.然而,活动的内容是用适当的语言内容重新加载没有问题,但活动标题!

在AndroidManifest.xml文件中,添加了android:configChanges ="locale"但没有成功.

<activity
    android:name=".layout.MainActivity"
    android:configChanges="locale"
    android:label="@string/app_name" />
Run Code Online (Sandbox Code Playgroud)

即使重写onConfigurationChanged事件也不起作用,

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // refresh your views here
    super.onConfigurationChanged(newConfig);

    this.setTitle(getResources().getString(R.string.app_name));
}
Run Code Online (Sandbox Code Playgroud)

谢谢,

Mir*_*lec 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();
        }
Run Code Online (Sandbox Code Playgroud)


小智 1

您需要在应用程序中为您的标题添加翻译,然后应用程序将根据用户设备语言自动更改您的标题...以下是如何将语言文件夹添加到您的应用程序如何在不同语言字符串资源文件夹之间实用地切换安卓?