2015-09-25 9 views
0

Я хочу изменить язык приложения из настроек.Как изменить языковой стандарт приложения в настройках?

public boolean onPreferenceChange(Preference preference, Object value) { 
       String stringValue = value.toString(); 

       if (preference instanceof ListPreference) { 
        // For list preferences, look up the correct display value in 
        // the preference's 'entries' list. 
        ListPreference listPreference = (ListPreference) preference; 
        int index = listPreference.findIndexOfValue(stringValue); 

        // Set the summary to reflect the new value. 
        preference.setSummary(index >= 0 ? listPreference.getEntries()[index]: null); 

        ............. 

Здесь, в разделе настроек, как мы можем получить доступ к конфигурациям и языку приложения, чтобы изменить его язык.

FYI, я перевел строки в значениях.

+0

Является ли это дубликат http://stackoverflow.com/questions/13181847/change-the-locale-at-runtime? – k3b

ответ

0

Проверить этот код

public static final String ARABIC = "ar"; 
    public static final String ENGLISH = "en"; 
public static void changeLoc(Activity context, int flagLang) 
    { 
     Resources res = context.getResources(); 
     // Change locale settings in the app. 
     DisplayMetrics dm = res.getDisplayMetrics(); 
     android.content.res.Configuration conf = res.getConfiguration(); 

     if(flagLang == 0) 
     { 
      //english 
      conf.locale = new Locale(ENGLISH); 

     } 
     else 
     { 
      //arabic 
      conf.locale = new Locale(ARABIC); 
     } 
     res.updateConfiguration(conf, dm); 
    } 
+0

Будет ли повторяться этот код при перезапуске приложения? – ozgur

+0

Да, этот код заставит ваше приложение прослушивать ваши настройки и игнорировать языковые настройки телефона. И вы должны сохранить текущий язык в sharedprefrences, и сначала, когда вы начнете работу, получите доступ к языку из общего доступа и вызовите этот метод. – abozaid

Смежные вопросы