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