我有一个可以推出2个版本的应用程序。
2应用程序之间的主要区别是资源文件。 (某些部分已重命名,但应用程序只处理一种语言)
是否可以在2个strings.xml文件与@ string / hello或R.string.hello之间切换到android中的某些特定设置?如果没有,那么解决这个问题的最佳方法是什么?我想我可以使用一些eclipse功能来切换xml文件,如果有一些参数...我更喜欢只有apk包,但它不是强制性的。
我无法更改客户端上的语言......
此致
修改
好主意Aleks。我将projet重构为库并使用良好的语言环境参数启动它。在这种情况下,我可以使用良好的数据库进行3个不同的项目。
答案 0 :(得分:1)
如果我理解正确,您希望能够在不更改手机语言的情况下切换应用程序的语言。我想,我可以看到一个有用的场景。
你可以尝试这样做。
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);
}
我自己没试过,所以这只是一个大概 - 看看它是否适合你。