如何动态地将单独的视图添加到scrollview或listview?

时间:2014-01-24 09:19:21

标签: android listview

我有一个布局和多行(多个xml文件),包含一个复选框或两个textview或一个图像或一个textview。 我调用一个服务,作为回报,我得到一个包含我想要在当前布局文件中添加的布局类型的json。例如: -

{
    "data": {
        "layouts": [
            {
                "id": 1
            },
            {
                "id": 2
            },
            {
                "id": 3
            }
        ]
    }
}

现在有三个id,所以我将不得不将三个不同的布局xml文件放在彼此之下,所有这些都是不同的。

还有一个按钮可以在其他充气视图下添加视图。 所以有任何建议请关于如何实现这个

1 个答案:

答案 0 :(得分:0)

你实际上可以多次给同一个东西充气,并将它拼凑在一起。例如,我以前做过这样的事情。如果你按照这个原则来做你应该做的事情,它应该对你有帮助。

String[] values=new String[]{"Value 1","Value 2","Value 3"};
LayoutInflater li = LayoutInflater.from(context);
LinearLayout ll = (LinearLayout) li.inflate(R.layout.some_linear_layout);
for (String value:values) {
    TextView tv=(TextView) li.inflate(R.layout.some_text_view);
    tv.setText(value);
    ll.addView(tv);
}

如果您想根据某个ID号更改视图,只需执行一个switch语句来确定您要执行的视图类型,如下所示:

View view;
int id=json.getInt("id");
swtich (id) {
case 0:
    view=li.inflate(R.layout.view_1);
    break;
case 1:
    view=li.inflate(R.layout.view_2);
    break;
}
li.addView(view);