我认为出于安全原因这可能是不可能的,但只是想确定:是否可以从外部 XML 文件在 Android 中创建布局?
确切地说:我正在远程服务器上使用 XSL 创建 XML 输出。我可以直接在服务器上创建必要的布局,然后将其下载到我的 Android 应用程序中。
我认为出于安全原因这可能是不可能的,但只是想确定:是否可以从外部 XML 文件在 Android 中创建布局?
确切地说:我正在远程服务器上使用 XSL 创建 XML 输出。我可以直接在服务器上创建必要的布局,然后将其下载到我的 Android 应用程序中。
是不可能的。Android 中的 XML 布局不存储为 XML。出于性能原因,它们在编译期间被预处理并以二进制形式存储,并且布局膨胀器只理解二进制形式而不是 xml。
当然,您可以在运行时动态创建视图,但我并不认为这是最好的解决方案。如果您查看 Android 的内部结构,通过 XML 创建的每个 View 都使用带有两个参数的 Constructor 调用:Context 和 - 对您来说更有趣 - 一个AttributeSet。我认为您在解析它时需要做很多工作,同时还要跟踪正确的格式。您至少可以根据服务器输出在 Java 中设置值并自己构建视图。
是的,现在可以使用 ItsNat Droid,看看:
https://groups.google.com/forum/#!topic/itsnat/13nl0P12J_s
它仍在大力开发中,但最重要的功能已经实现。
这是可能的,但我找到了只加载简单布局的方法:
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);
也许LayoutInflator 的 inflate 功能对您有用。
编辑:似乎还不行。