1

アプリの言語をプログラムで変更したい。最初のonCreate(Bundle)メソッドが機能し、画像は中国語で表示されます。2番目は機能しません。「TODO」コメントには何を挿入する必要がありますか?ビューが作成された後に言語を変更し、それを更新したい。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TranslationHelper.changeLanguage(this, Locale.CHINESE);
    setContentView(R.layout.main_activity);
    doBindService();
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    TranslationHelper.changeLanguage(this, Locale.CHINESE);
    // TODO recreate view to display chinese version
    doBindService();
}
4

1 に答える 1

0

setContentView最初のサンプルは、メソッドが呼び出される前にロケールを変更するため、機能します。changeLanguageの前に挿入する必要がありますsetContentView。すべてのビューは後ですでに膨らんでsetContentViewいるため、この時点でロケールを変更しても効果はありません。ビューの作成後に言語を変更する場合は、手動で更新する必要があります。

于 2012-07-30T11:03:32.960 に答える