是否有人遇到此功能请求并能够解决此问题?我们有一个能够创建表单作为模板的webapps。该模板基本上会被调用,用户需要在进入数据库之前填写表单。因此,表单直接在应用程序内创建,并且当用户使用应用程序创建表单时,都会定义字段,标签和变量。由于表单总是会发生变化,我无法对android中的活动进行硬编码,必须手动创建它并在每次创建新表单时重新编译。有没有办法让我们读取标签,变量设置以XML格式存储在db中或称为JSON,并在每次通过android调用表单时动态构建表单?我有意义吗?请指教?
答案 0 :(得分:2)
是。您在XML中所做的一切(视图创建,定位等)也可以通过代码动态完成。
一种简单的方法是在其中放置一个带有单个LinearLayout的ScrollView。然后在您的活动onCreate()中,您可以像读取任何其他文件一样读取您的JSON或XML文件(您可以将其存储为assets文件夹,也可以从后端查询)。然后根据您的变量,您可以初始化并将TextViews和EditText添加到LinearLayout。 ScrollView将无限扩展以适应您的所有表单元素。
请确保您不执行任何长时间运行的操作,例如从后端查询或从主UI线程中读取文件。另一个需要注意的是,如果ScrollView不回收视图并且在其中放置太多视图(例如超过20个)会使您的应用程序内存不足并减慢/崩溃。
答案 1 :(得分:0)
您可以创建一个相对布局的表单,其中包含您在XML中需要的所有字段/视图,然后在代码中运行时根据您在db中的标签名称或您正在使用的任何字段/视图,您可以隐藏/显示字段/视图是动态需要的。这样,您可以保留每个字段的位置和设置,就像隐藏1个视图一样,其他视图将占据其位置。