如果我理解正确,您希望能够在不改变手机语言的情况下切换应用程序的语言。我想,我可以看到一个可能有用的场景。
你可以尝试做这样的事情。
1)使用多个字符串资源构建您的应用程序,就像您支持多个语言环境/语言一样。
2)在您的清单,添加configChanges="locale"
到你的活动:
<activity android:name=".Main" android:configChanges="locale" android:label="@string/app_name" />
3)第一次应用程序启动时,将在客户端手机的语言。当用户更改应用程序中的语言时,请以您喜欢的任何方式(sqlite,文件,应用程序包等)保存新语言,并强制重新启动应用程序。
4)当你的应用程序启动时,检索保存的语言并设置为默认语言环境吧:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//load saved language
String languageToUse = ...
if(languageToUse != null)
{
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
this.setContentView(R.layout.main);
}
我还没有尝试过这个自己,所以这只是一个一般的想法 - 看看它是否工作为你。