我需要做一个单身或静态类更改应用的本地化,这将具有以下实施的Android的setContentView ecnapsulation
public static void changeLocale(Context context , int layoutID ,int pos)
{
if (currentLocale == pos)
return;
Locale locale;
if (pos == 0)
locale = new Locale("en");
else
locale = new Locale("ar");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().updateConfiguration(config, context.getApplicationContext().getResources().getDisplayMetrics());
//setContentView(layoutID);
}
它将从任一活动或Dialog调用,在这里我的问题是, Context
没有setContentView()
,我应该通过什么接口或类而不是具有setContentView()
的上下文,其中一种方法是传递一个Object并将其投射到try catch块中的Activity
或Dialog
,但我相信是一个更好的方法来做到这一点,谢谢你的帮助
我试过不设置内容查看没有工作,你必须调用的setContentView(),但我总是喜欢官方文档qoutes :) –
你需要在OnCreate中功能的setContentView一次 - 那么如果你改变了语言环境,内容查看应根据语言环境进行更改 –