当语言发生变化时,我想做点什么。所以我在 Manifest.xml 中的属性 andorid:configCahnges 语言环境中放置了活动:
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize|locale"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</intent-filter>
</activity>
但是当我运行我的应用程序并转到设置和更改语言时,方法 onConfigurationchanged 不会在 MainAcitvity 中调用。为什么?android的文档说它应该。我为 API 16 开发。
我发现如果我添加到android:configChanges
layoutDirection 并设置android:minSdkVersion="17"
该方法被调用。(我在 4.2.2 上运行应用程序)
但现在我无法将文本刷新为新语言。我试着打电话:
getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
在 onConfigurationChanged 但没有成功。:(