我需要用英语和印地语显示文本,但默认情况下会以英文显示。
我有两个带标签的按钮"英文"和"印地语"
当点击印地语时,它会在印地语中显示,但是当我点击英语时,文字再也没有回到英语。
以下是我正在使用的代码
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)
这不会影响运行时效果。您需要使用语言hi
重新开始您的活动。
的简单解决方法
现在每次加载“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();
}