Android 语言环境问题
Android Locale Issues
我需要以英语和印地语显示文本,但默认情况下它以英语显示。
我有两个带有标签 "English" 和 "Hindi"
的按钮
当点击印地语时,它以印地语显示,但当我点击英语时,文本不会再次变回英语。
以下是我使用的代码
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);
}
我缺少什么?
谢谢。
这不是给你效果运行时。您需要使用 hi
.
语言重新开始您的 activity
简单的解决方法
- 在 sharedPreference 中存储您要更改的语言。
- 设置首选项后。 startActivity(getIntent());
现在每次加载时 "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();
}
我需要以英语和印地语显示文本,但默认情况下它以英语显示。
我有两个带有标签 "English" 和 "Hindi"
的按钮当点击印地语时,它以印地语显示,但当我点击英语时,文本不会再次变回英语。
以下是我使用的代码
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);
}
我缺少什么?
谢谢。
这不是给你效果运行时。您需要使用 hi
.
简单的解决方法
- 在 sharedPreference 中存储您要更改的语言。
- 设置首选项后。 startActivity(getIntent());
现在每次加载时 "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(); }