1

言語変更が発生したら何とかしたい。そのため、属性 andorid:configCahnges ロケールの 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>

しかし、アプリを実行して言語の設定と変更に移動すると、メソッド onConfigurationchanged は MainAcitvity で呼び出されません。なんで?Android用のドキュメントはそうすべきだと言っています。API 16 向けに開発しています。

add をandroid:configChangeslayoutDirection に追加して設定android:minSdkVersion="17"すると、メソッドが呼び出されることがわかりました。(私は4.2.2でアプリを実行しています)

しかし今、テキストを新しい言語に更新できませんでした。私は電話しようとします:

 getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());

onConfigurationChanged にありますが、成功しません。:(

4

2 に答える 2

0
        android:configChanges="locale|layoutDirection"

4.4に取り組みました

于 2016-01-12T08:54:37.863 に答える