使用从android服务器下载到sd卡的/strings.xml覆盖res/values/strings.xml文件
我想用从服务器下载的使用从android服务器下载到sd卡的/strings.xml覆盖res/values/strings.xml文件,android,Android,我想用从服务器下载的strings.xml文件替换嵌入apk的strings.xml文件,该文件存储在我的内部sd卡中。是否可以将外部标记引用到TextView。我的客户希望完全控制应用程序中的语言。如果我成功地从服务器下载strings.xml,并将其存储到sd卡中,我如何将标记元素引用到相应的textView。我真的不需要代码,只需要关于这个方法的想法和批评。我认为这不会起作用,因为您的资源是以一种特殊的方式编译到apk中的,因此可以根据设备配置访问它们。这在编译时发生。在安装应用程序后,您
strings.xml
文件替换嵌入apk
的strings.xml
文件,该文件存储在我的内部sd卡中。是否可以将外部标记引用到TextView
。我的客户希望完全控制应用程序中的语言。如果我成功地从服务器下载strings.xml
,并将其存储到sd卡中,我如何将标记元素引用到相应的textView
。我真的不需要代码,只需要关于这个方法的想法和批评。我认为这不会起作用,因为您的资源是以一种特殊的方式编译到apk中的,因此可以根据设备配置访问它们。这在编译时发生。在安装应用程序后,您不能简单地交换strings.xml。我认为这不会起作用,因为您的资源以一种特殊的方式编译到apk中,以便可以根据设备配置访问它们。这在编译时发生。安装应用程序后,您不能简单地交换strings.xml。这是不可能的。如果要实现这一点,必须在创建控件时在运行时设置语言
如果您有完整的布局(不创建动态控件),则必须递归扫描布局,查找按钮、文本视图、提示等,识别控件并从下载的文件中设置文本属性
大概是这样的:
for(int i=0;i<yourLayout.getChildsCount;i++)
{
View v = yourLayout.getChildAt(i);
if(v instanceof Button){
((Buttons)v).setText(LANG.get(v.getTag()));
}
}
将您的语言放在hashmap中:
HashMap<String, String> LANG = new HashMap<String, String>();
HashMap LANG=newhashmap();
并为布局中的每个控件设置标记属性。然后你可以找到这样的:
for(int i=0;i<yourLayout.getChildsCount;i++)
{
View v = yourLayout.getChildAt(i);
if(v instanceof Button){
((Buttons)v).setText(LANG.get(v.getTag()));
}
}
for(int i=0;i这是不可能的。如果要实现这一点,必须在创建控件时在运行时设置语言
如果您有完整的布局(不创建动态控件),则必须递归扫描布局,查找按钮、文本视图、提示等,识别控件并从下载的文件中设置文本属性
大概是这样的:
for(int i=0;i<yourLayout.getChildsCount;i++)
{
View v = yourLayout.getChildAt(i);
if(v instanceof Button){
((Buttons)v).setText(LANG.get(v.getTag()));
}
}
将您的语言放在hashmap中:
HashMap<String, String> LANG = new HashMap<String, String>();
HashMap LANG=newhashmap();
并为布局中的每个控件设置tag属性。然后可以按如下方式找到它们:
for(int i=0;i<yourLayout.getChildsCount;i++)
{
View v = yourLayout.getChildAt(i);
if(v instanceof Button){
((Buttons)v).setText(LANG.get(v.getTag()));
}
}
for(int i=0;ii如果我们扩展textview并将下载的strings.xml放入其中,我们可以引用它吗如果我们扩展textview并将下载的strings.xml放入其中,我们可以引用它吗