2017-06-01 9 views
1

言語を変更するためにボタンを追加しようとしていますが、言語をアラビア語に変更した後に 、アプリケーションを終了すると英語に戻ります。Androidアプリケーションの言語を変更する

public class Language extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_language); 
    findViewById(R.id.BTN_ar).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      setLocale("ar"); 
     } 
    }); 
    findViewById(R.id.BTN_en).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      setLocale("en"); 
     } 
    }); 
} 

@SuppressWarnings("deprecation") 
public void setLocale(String lang) { 
    Locale myLocale = new Locale(lang); 

    DisplayMetrics dm = getResources().getDisplayMetrics(); 
    Configuration conf = getResources().getConfiguration(); 
    conf.locale = myLocale; 
    getResources().updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, MainActivity.class); 
    startActivity(refresh); 
    finish(); 


    } 
} 
+1

使用 'SharedPreference' – Ibrahim

答えて

0

は、あなたは以下の例のように、SharedPreferenceで変更された言語を保存する必要があります。

Resources res = getApplicationContext().getResources(); 
// Change locale settings in the app. 
DisplayMetrics dm = res.getDisplayMetrics(); 
android.content.res.Configuration conf = res.getConfiguration(); 
conf.locale = new Locale(language_code); 
res.updateConfiguration(conf, dm); 
//save to shared preference 
UtilFunctions.changeLanguage(HomeActivity.this, language_code); 


public static void changeLanguage(Context context, String languageCode) { 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putString("lang", languageCode); 
     editor.apply(); 
} 

public static String getCurrentLanguage(Context context) { 
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
    return prefs.getString("lang", ""); 
} 
1

選択した言語をSharedPreferencesに保存し、作成したアクティビティで確認する必要があります。

関連する問題