2016-04-27 7 views
0

英語とスペイン語のリソースがある問題があります。そして、私は次のようにロケールを設定していた: -ローカライゼーションが有効でない

private Settings settings; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     settings = new Settings(LoadingScreenActivity.this); 
     if(settings.isSpanish()){ 
      String languageToLoad = "es"; // your language 
      Locale locale = new Locale(languageToLoad); 
      Locale.setDefault(locale); 
      Configuration config = new Configuration(); 
      config.locale = locale; 
     } 
     setContentView(R.layout.activity_loading_screen); 

はまた、私はマニフェストでこれを設定している: - としてtrueを返すsettings.isSpanish

android:configChanges="locale|orientation|keyboardHidden|screenSize" 

。それでもレイアウトはスペイン語ではなく英語のテキストを表示します。

ご協力いただければ幸いです。

ありがとうございます。

答えて

0

私は私がすべての活動にこれをしなければならないけど、私はonResumeが、この部分

getBaseContext().getResources().updateConfiguration(config, 
      getBaseContext().getResources().getDisplayMetrics()); 

については、そのことを考えるonResume

@Override 
protected void onResume() { 
    super.onResume(); 
    settings = new Settings(WheelActivity.this); 
    Log.e("isSpanish", String.valueOf(settings.isSpanish())); 
    if(settings.isSpanish()){ 
     String languageToLoad = "es"; // your language 
     Locale locale = new Locale(languageToLoad); 
     Locale.setDefault(locale); 
     Configuration config = new Configuration(); 
     config.locale = locale; 
     getBaseContext().getResources().updateConfiguration(config, 
       getBaseContext().getResources().getDisplayMetrics()); 
    } 
} 

でこれを行うことによってこれを行うことができました。これが正しいかどうかは分かりません。より良い解決策を待つだろう。

関連する問題