【发布时间】:2011-09-07 14:22:15
【问题描述】:
我想编写一个应用程序,其中(至少现在)内容始终相同,但布局是在运行时根据用户偏好动态加载的。本质上,我希望应用程序应用一个看起来与其他皮肤完全不同的“皮肤”。
我找到了一些使用 SAXparser 的教程: http://www.androidpeople.com/android-xml-parsing-tutorial-using-saxparser/ http://twigstechtips.blogspot.com/2010/12/android-how-to-parse-xml-string.html 并且可以想象从头开始编写能够识别所有标准 xml 布局标签然后动态加载布局的每个部分的东西。但从头开始需要做很多工作!这个功能肯定在 android 中可用,或者肯定有人编写了一些开源代码,可以在您的活动的 onCreate 方法开始时运行,该方法接受一个 xml 文件并设置您的布局?
我在这里发现了一个类似但回答不令人满意的问题: How to create a layout file programmatically 这让我认为,由于 setContentView 必须将整数 resourceID 作为其参数,因此这些在编译时预先烘焙的事实可能是一个问题。 (setContentView 也可以将 View 对象作为其参数,但我不想要大量的 if 语句并将每个 View 对象一个一个地传递给它,我想要一些输入 xml 文件或 xml 字符串并设置内容的代码查看。)
也许我偏离了轨道。还有另一种方法可以做到这一点吗?我认为拥有动态加载皮肤的应用程序的能力很重要。
谢谢!
【问题讨论】:
-
注意,我不想在编译时包含 xml 文件。相反,想象一下 Web 上的一个 xml 文件,一个已编译的应用程序获取并用作它的皮肤。
标签: android