按下时刷新应用程序

时间:2012-08-29 04:21:07

标签: android android-activity

我允许用户更改语言。语言更改是根据自己的活动进行的。当用户按下后退按钮时,我希望所有文本都切换到所选语言。

我正在使用以下内容......

@Override
public void onResume() {
    if (language.equals("en"))
        txTitle.setText("TITLE");
    else
        txTitle.setText("TITEL");

    super.onResume();
}

按下后不会刷新页面。

4 个答案:

答案 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);
}