我认为出于安全原因可能不太可能,但只是想确定:是否可以从外部XML文件在Android中创建布局?
确切地说:我正在远程服务器上使用XSL创建XML输出。我可以直接在服务器上创建必要的布局,然后将其下载到我的Android应用程序。
答案 0 :(得分:6)
这是不可能的。 Android中的XML布局不存储为XML。出于性能原因,它们在编译期间进行预处理并以二进制形式存储,而布局inflater只能理解二进制形式而不是xml。
答案 1 :(得分:3)
当然你可以在运行时创建动态视图,而我并不是真的,这是最好的解决方案。如果你看一下Android的内部结构,那么每个通过XML创建的View都会被一个带有两个参数的构造函数调用:Context和 - 对你来说更有趣 - 一个AttributeSet。我认为你在解析它时有很多工作,同时跟踪正确的格式。 您至少可以根据服务器输出设置值并在Java中自己构建视图。
答案 2 :(得分:1)
是的,现在可以使用ItsNat Droid,看看:
https://groups.google.com/forum/#!topic/itsnat/13nl0P12J_s
它仍处于重大发展阶段,但最重要的功能已经实施。
答案 3 :(得分:0)
这是可能的,但我找到了只加载简单布局的方法:
Resources resources=context.getPackageManager().getResourcesForApplication(targetPackage);
int resID = resources.getIdentifier("widget_layout" , "layout", TARGET_PACKAGE);
XmlResourceParser parser = resources.getLayout(resID);
View themeLayout = LayoutInflater.from(this).inflate(parser, null);
答案 4 :(得分:-1)
也许inflate function of the LayoutInflator适合您。
编辑:似乎无法正常工作。