2012-09-25 109 views
3

可能重複:
Change language programatically in Android更改語言編程

我要改變語言,我SettingsActivity.java所有活動馬上。
並保存此選項(即使當我退出應用程序或重新啓動手機時),無論系統區域設置如何。
我該怎麼做?退出應用程序之間

public class MyOnItemSelectedListener implements OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 
     switch (pos) { 
     case 0: 
      Locale locale = new Locale("en"); 
      Locale.setDefault(locale); 
      Configuration config = new Configuration(); 
      config.locale = locale; 
      getBaseContext().getResources().updateConfiguration(config, getBaseContext() 
        .getResources().getDisplayMetrics()); 
      break; 

     case 1: 
      Locale locale2 = new Locale("de"); 
      Locale.setDefault(locale2); 
      Configuration config2 = new Configuration(); 
      config2.locale = locale2; 
      getBaseContext().getResources().updateConfiguration(config2, getBaseContext() 
        .getResources().getDisplayMetrics()); 
      break;   
     }  
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
     // Do nothing. 
    } 
} 

+0

你有什麼問題嗎?語言沒有改變? –

+0

更改不會立即應用 – user1680782

+0

Android中語言的運行時切換默認情況下不受支持,因此在每次更改配置時都必須手動重置區域設置。 CFR http://stackoverflow.com/questions/2900023/change-language-programatically-in-android –

回答

1

1),然後重新啓動,你可以選擇保存這樣的: 創建應用程序類

public class MutawaApplication extends Application { 

(http://developer.android.com/reference/android/app/ Application.html) 在AndroidManifest.xml

android:name=".MyApplication" 

註冊它在這個類中的onCreate讀取SharedPreferences語言。當您更改應用程序中的lang時,將其保存到SharedPreferences。

2)在活動檢查的onResume區域,如果需要做replaceContentView()