{
layout:[
{
tag :"edittext",
name :"Name",
hint :"Type your name here"
},
{
tag :"checkbox",
name :"Is married",
hint :""
},
{
tag :"button",
name :"Submit",
hint :""
}
]
}
我正在描述我想要的是什么。首先,上面的json每次都会改变。结构将相同,只是标记,名称和提示值将改变。现在上面的jsonarray有三个jsonobject。它可能是任何数字(4/5/6任意数量的jsonobject)。任何人都可以建议我如何解决这个问题吗?谢谢
答案 0 :(得分:0)
最好将你的问题分成很小的部分,所以这里有我的
检查控件是否为EditText或Button或其他任何东西:我建议您使用switch case以获得更好的编码结构
switch (tag ){
case "edittext":
//add edittext
break;
case "button":
//add button
break;
}
按照此链接动态添加控件
Generating Edit Text Programatically in android
Add button to a layout programmatically
How to add checkboxes dynamically in android
答案 1 :(得分:0)
您可以根据jsonarray的大小创建布局。
JSONArray jArray = jObject.getJSONArray("layout");
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
for (int i=0; i < jArray.length(); i++)
{
try {
JSONObject oneObject = jArray.getJSONObject(i);
// Pulling items from the array
String tag = oneObject.getString("tag");
String name= oneObject.getString("name");
String hint= oneObject.getString("hint");
Button button = new Button(this);
button.setText(name);
button.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);
} catch (JSONException e) {
// Oops
}
}