从json模板在Android中创建动态UI
在应用程序启动时,我将从web服务器下载数据并将其存储在共享首选项中,现在我想要的是根据json模板在android中动态创建UI表单/活动。有人能建议我如何实现这一点吗从json模板在Android中创建动态UI,android,json,user-interface,android-activity,Android,Json,User Interface,Android Activity,在应用程序启动时,我将从web服务器下载数据并将其存储在共享首选项中,现在我想要的是根据json模板在android中动态创建UI表单/活动。有人能建议我如何实现这一点吗 { "templates":[ { "name":"Default", "default":true, "fields":[ {
{
"templates":[
{
"name":"Default",
"default":true,
"fields":[
{
"type":"textbox",
"label":"Your e-mail",
"metadataIPTC":"234",
"required":true,
"regex":"\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b"
}
]
}
]
}
XML布局在运行时转换为Java对象,所以您只需编写一个具有容器布局(如线性布局)的XML,在运行时将其膨胀,并根据从服务器接收到的信息以编程方式添加视图 例如: 创建布局,并将其设置为活动的内容视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/container"
/>
我想您是在询问服务器驱动的UI,请通过此链接了解更多信息:
在我尝试创建时,这是第一次实现此功能,如果您有任何教程/示例可以提供给我@IANHANNIBALLAKE,请您提供一个示例。关于解析Json?我知道解析Json,但是如何显示UITHANK的问题,我现在就试试。如何从中获取价值请有人告诉我你能编辑这个答案来添加一个关于链接内容的概要吗?我们通常不鼓励只链接的答案,因为如果没有其他信息,不可避免的链接腐烂会使答案变得无用。
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container);
for (Field f: fields) {
if (f.getType().equals("textbox")) {
TextView txtView = new TextView(this);
txtView.setText("Your e-mail");
txtView.setId(1);//need for better use
linearLayout.addView(txtView);
} else if (f.getType().equals("button")) {
//create a button similarly as above,and add it to the layout
}
}