2016-08-14 215 views
3

我有一个singleTask活动和我的应用程序supportsRtl,所以当我尝试更改语言时,此SingleTask活动不受影响,因此我需要重新启动它,任何帮助?重新启动一个任务活动

回答

2

如果您使用API​​ 11以上,你可以使用:

Activity.recreate() 

如果需要支持较低API使用此再次调用您的活动:

Intent i = getIntent(); 
finish(); 
startActivity(i); 
0

如果我们使用这种方法我们不需要重新开始活动

用以下代码更改您的应用语言:

public static void notifyForLanguageChange(Context context, String languageCode) { 
     Resources res = context.getResources(); 
     // Change locale settings in the app. 
     DisplayMetrics dm = res.getDisplayMetrics(); 
     android.content.res.Configuration conf = res.getConfiguration(); 
     conf.locale = new Locale(languageCode.toLowerCase()); 
     res.updateConfiguration(conf, dm); 
    } 

,之后改变与(即重新加载字符串资源)

public void setLabels() { 
     txtFirstView.setText(R.string.first); 
     txtSecondView.setText(R.string.second); 
     btnThirdView.setText(R.string.third); 
    } 
屏幕标签