我允许用户更改语言。语言更改是根据自己的活动进行的。当用户按下后退按钮时,我希望所有文本都切换到所选语言。
我正在使用以下内容......
@Override
public void onResume() {
if (language.equals("en"))
txTitle.setText("TITLE");
else
txTitle.setText("TITEL");
super.onResume();
}
按下后不会刷新页面。
答案 0 :(得分:1)
覆盖onBackPressed:
@Override
public void onBackPressed() {
if (language.equals("en"))
txTitle.setText("TITLE");
else
txTitle.setText("TITEL");
}
但这不是一个很好的方法,因为你不能去上一个活动。 为什么不在SharedPreferences中保存语言并将其加载到onCreate()。
答案 1 :(得分:0)
当您返回上一个活动时,onRestart()
活动将被触发,因此您可以在onCreate()
内拨打onRestart()
方法重新创建您认为会更改活动的活动您应用的语言。
答案 2 :(得分:0)
@Muz
按后退按钮时,它不会调用onCreate()
功能。因此,您应该在onResume()
上添加必要的代码部分。
答案 3 :(得分:0)
在您的主要活动中,您可以致电:
Intent selectLanguage = new Intent("your_activity.this",
Your_secund_Activity.class);
startActivityForResult(selectLanguage, languageRequestCode);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==languageRequestCode) {
//Your selected language number will be resultCode
//refresh methods
}
}
//in the secund activity:
@Owerride
public void onBackPressed() {
super.onBackPressed();
setResult(selectedLanguageNumber);
}
@Owerride
public void onPause() {
super.onPause();
setResult(selectedLanguageNumber);
}
@Owerride
public void onDestroy() {
super.onDestroy();
setResult(selectedLanguageNumber);
}