2016-04-27 7 views
0

Ich habe ein Problem, wo ich Ressourcen für Englisch und Spanisch haben. Und ich hatte das Gebietsschema wie folgt festgelegt: -Lokalisierung funktioniert nicht in activty

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); 

Auch gesetzt habe ich dies im Manifest: -

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

settings.isSpanish als true zurück. Noch zeigt das Layout englischen Text und nicht Spanisch.

Jede Hilfe wird geschätzt.

Vielen Dank.

Antwort

0

Ich konnte dies tun, indem diese

in onResume tun
@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()); 
    } 
} 

Ich denke, es ist nicht über die onResume aber dieser Teil

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

Obwohl ich dies in allen Aktivitäten zu tun haben. Ich bin mir jedoch nicht sicher, ob dies der richtige Weg ist. Wird auf eine bessere Lösung warten.