如何动态修改Android布局XML
我是android开发新手,我将开发一个android应用程序。在这个应用程序中,我想动态生成xml布局。登录到应用程序后,服务器将发送包含控件描述的xml模板,包括每个控件上的不同属性描述验证、maxlength、控件大小等,这意味着没有预定义的xml布局 我的计划是,从下载的xml模板中创建一个xml布局,并将该xml存储在sqlite数据库中。当用户单击一条记录时,我想向用户显示这个动态创建的表单如何动态修改Android布局XML,android,android-layout,Android,Android Layout,我是android开发新手,我将开发一个android应用程序。在这个应用程序中,我想动态生成xml布局。登录到应用程序后,服务器将发送包含控件描述的xml模板,包括每个控件上的不同属性描述验证、maxlength、控件大小等,这意味着没有预定义的xml布局 我的计划是,从下载的xml模板中创建一个xml布局,并将该xml存储在sqlite数据库中。当用户单击一条记录时,我想向用户显示这个动态创建的表单 是否可以修改xml layoutlike设置innerxml?您可以尝试以下操作: Layo
是否可以修改xml layoutlike设置innerxml?您可以尝试以下操作:
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView = inflater.inflate(myXmlPullParser, null);
setContentView(myView);
你可以试试这样的方法:
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView = inflater.inflate(myXmlPullParser, null);
setContentView(myView);
这是可能的。使用一个仅具有线性布局的xml布局,在onCreate中访问id为的布局,以编程方式创建所有视图,并将其添加到线性布局中作为子视图,然后将该xml布局设置为setContentView。
稍后,您希望在创建视图后添加更多视图。您可以运行UI线程并添加视图。这是可能的。选择一个仅具有线性布局的xml布局,然后在onCreate中访问具有id的布局,以编程方式创建所有视图,并将其作为子视图添加到线性布局,然后将该xml布局设置为setContentView。 稍后,如果要在创建视图后添加更多视图,可以运行UI线程并添加视图。基于: 出于性能原因,视图膨胀在很大程度上依赖于在构建时完成的XML文件的预处理。因此,目前不可能在运行时将LayoutInflater与XmlPullParser一起用于普通XML文件 如果版面不在layout res目录内,则无法对其进行充气。基于: 出于性能原因,视图膨胀在很大程度上依赖于在构建时完成的XML文件的预处理。因此,目前不可能在运行时将LayoutInflater与XmlPullParser一起用于普通XML文件
如果布局不在layout res目录中,则无法对其进行充气。我认为,与其动态创建xml,不如考虑通过编程方式创建所需的视图,
如果它是一个高级视图,那么您应该按照WalkingCube的建议,动态地膨胀xml视图 我认为,与其动态创建xml,不如考虑通过编程方式创建所需的视图,
如果它是一个高级视图,那么您应该按照WalkingCube的建议,动态地膨胀xml视图 Android不完全支持您的工作方式,但您可以动态构建自己的布局 创建自己的TemplateBuilder类。此类将从服务器检索布局文件,并可能将其保存在数据库中。可以读取XML文件,并且可以在运行时添加每个定义的项。如前所述,这不是在Android中工作的传统方式,但它将是您的最佳选择 如果某些视图组或布局将在布局中更频繁地使用,则可以将它们定义为res文件夹中的XML文件,并在需要时对其进行充气。创建预定义的布局块,您可以随时充气,并真正建立您的自定义布局 有关在运行时添加视图的示例,您可以访问以下链接:
Android不完全支持您的工作方式,但您可以动态构建自己的布局 创建自己的TemplateBuilder类。此类将从服务器检索布局文件,并可能将其保存在数据库中。可以读取XML文件,并且可以在运行时添加每个定义的项。如前所述,这不是在Android中工作的传统方式,但它将是您的最佳选择 如果某些视图组或布局将在布局中更频繁地使用,则可以将它们定义为res文件夹中的XML文件,并在需要时对其进行充气。创建预定义的布局块,您可以随时充气,并真正建立您的自定义布局 有关在运行时添加视图的示例,您可以访问以下链接:
如果坚持这样做,则必须在程序中解析接收到的xml文件,并根据接收到的文件中请求的方式以编程方式添加xml布局的每个视图如果坚持这样做,则必须解析接收到的xml文件,在您的程序中,根据收到的文件中的请求以编程方式添加xml布局的每个视图使用html页面从服务器加载动态视图。web服务只是发送一个模板xml。登录并下载此模板后,该应用程序还应在脱机模式下工作使用html页面从服务器加载动态视图。web服务只是发送一个模板xml。登录并下载此模板后,该应用程序也应在脱机模式下工作。目录中将有一个布局文件。是否可以
是否能够使用该布局文件的新创建布局动态更改innerxmlreplace???您需要首先膨胀innerxml。要做到这一点,你需要更平、更充气。但是,此方法不接受动态加载。它必须来自res文件夹。我的结论是:您仍然不能这样做。@user922834是否可以用该布局文件的新创建的布局动态更改innerxmlreplace??-不因为它是编译的。在res目录中将有一个布局文件。是否可以用该布局文件的新创建的布局动态更改innerxmlreplace???您需要首先膨胀innerxml。要做到这一点,你需要更平、更充气。但是,此方法不接受动态加载。它必须来自res文件夹。我的结论是:您仍然不能这样做。@user922834是否可以用该布局文件的新创建的布局动态更改innerxmlreplace??-不因为它是编译的。