2016-03-26 385 views
0

我需要用英文和印地語顯示文本,但默認情況下顯示爲英文。Android語言環境問題

我有一個標籤,「英語」和「印地文」

兩個按鈕,當上印地文點擊,它顯示在印地文,但是當我點擊英文文本不被再次又回到了英國。

以下是代碼我使用

Button en_Button,hi_Button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setLanguage("en"); 

    en_Button = (Button)findViewById(R.id.en_Button); 
    hi_Button = (Button)findViewById(R.id.hi_Button); 

    en_Button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      setLanguage("en"); 
     } 
    }); 

    hi_Button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      setLanguage("hi"); 
     } 
    }); 
} 

public void setLanguage(String language) 
{ 
    String languageToLoad = language; // your language 
    Locale locale = new Locale(languageToLoad); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    getBaseContext().getResources().updateConfiguration(config, 
      getBaseContext().getResources().getDisplayMetrics()); 
    this.setContentView(R.layout.activity_main); 
} 

是什麼,我很想念?

謝謝。

+0

沒有檢查答案我發佈? –

+0

我很困惑,因爲當我點擊HIndi,而沒有重新開始活動,文本正在轉換爲印地文。當我點擊英文按鈕時,它不會被轉換成英文。 –

+0

重新啓動活動只是解決方案。 –

回答

0

這不是給你效果運行時。您需要再次使用語言hi開始您的活動。

簡單的解決方法爲您希望在sharedPreference更改

  1. 商店語言。
  2. 設置偏好後。 startActivity(getIntent());
  3. 現在您每次載入「en」。的而不是負荷值形成SharedPreferences

    public String getAppLanguage() { 
        SharedPreferences pref; = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
        return pref.getString(APP_LANG, "en"); 
    } 
    
    public void setAppLanguage(String language) { 
        SharedPreferences pref; = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
        Editor editor = pref.edit(); 
        editor.putString(APP_LANG, language); 
        editor.commit(); 
    }