2016-08-14 270 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); 
    } 
屏幕標籤