要在Android API 25及以上版本中在运行时更改语言,可以按照以下步骤进行操作:
Hello
World
private void setLocale(String lang) {
Locale locale = new Locale(lang);
Configuration config = new Configuration();
config.setLocale(locale);
getResources().updateConfiguration(config, getResources().getDisplayMetrics());
// 重新启动Activity
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 检查是否要更改语言
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String lang = preferences.getString("language", "");
if (!lang.isEmpty()) {
setLocale(lang);
}
// 其他初始化代码...
}
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 更改语言为英文
setLocale("en");
}
});
注意:在使用上述代码之前,确保已经将应用程序的语言设置为默认值。可以使用以下代码来设置默认语言:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("language", "");
editor.apply();
这样,在应用程序的生命周期内,可以根据需要更改语言,并在重新启动Activity后立即生效。