我希望在更改语言出现时执行某些操作。所以我在属性andorid:configCahnges locale:
中的Manifest.xml中放置了活动 <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>
但是当我运行我的应用程序并转到设置和更改语言时,在MainAcitvity中调用onConfigurationchanged方法。为什么? Android的文档说它应该。 我为API 16开发。
我发现如果我将添加到android:configChanges
layoutDirection并设置android:minSdkVersion="17"
,则调用该方法。 (我在4.2.2上运行app)
但现在我无法将文本刷新为新语言。 我试着打电话:
getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
在onConfigurationChanged中但没有成功。 :(
答案 0 :(得分:0)
android:configChanges="locale|layoutDirection"
工作在4.4
答案 1 :(得分:-1)
你必须定义android:configChanges =“layoutDirection | locale”才能调用onConfigurationChanged()。