2017-03-13 18 views
0

私の目的はコンテキストを作成する前にアプリケーション言語をオーバーライドしており、私は他のアクティビティを呼び出すためにそのコンテキストを使用します。 "onCreate"のメソッドを再作成()することで可能ですが、その目的を達成するためにアクティビティを再作成したくありません。たとえば、attachBaseContextの前にsharedPreferencesキー値を取得する方法は?

@Override 
protected void attachBaseContext(Context newBase) { 

    //null exception here 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 

    String langKey = getString(R.string.pref_language_key); 
    String langValue = sharedPreferences.getString(langKey, null); 

    super.attachBaseContext(ConfigurationUtil.wrapLanguage(newBase, langValue)); 
} 

これができない場合は、ユーザーが設定から選択したアプリケーション言語を設定する方法はありますか。

答えて

4

これが私の仕事:

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase); 

をごActivityコンテキスト

newBaseコンテキストを使用しないでください。
関連する問題