自定义ListView适配器,在listview适配器中创建动态textView

时间:2014-07-08 16:55:47

标签: android android-layout listview android-listview

我的要求如下:

创建一个自定义列表视图,其中包含标题和副标题(来自xml的静态内容),后跟包含文本视图的线性布局,将在运行时/动态创建。在运行时创建的文本视图的数量可能在1-10之间变化。在线性布局下面,可能有一个图像或一个文本视图(但只有一个)。

编辑:这些动态textview也可能包含或不包含运行时的复合drawable。

我尝试过扩展baseadapter的自定义适配器,可以使用图像和textview来实现标题和副标题。但是我无法创建动态文本视图并将它们添加到列表视图的当前列表项中。

请在图片中找到示例参考,红色边框线代表要创建的动态文本视图。

Sample Reference

以下代码:

for(int i =0; i< jsonDetails.size(); i++) {
    mh.textview1 = new TextView(context);

    if(null != jsonDetails.get(i+"")) {
        mh.linearLayout.addView(mh.textview1);
        mh.textview1.setLayoutParams(mh.textViewLP);
        mh.textview1.setGravity(Gravity.CENTER_VERTICAL);
        mh.textview1.setText("Test" + i);
    }
}

2 个答案:

答案 0 :(得分:2)

我建议不要像这样动态添加/删除一些任意数量的textview。我将采用的方法是将文本元素组合到一个元素中,并且在列表项的布局中始终只有一个TextView。

StringBuilder builder = new StringBuilder();
for (int i =0; i< jsonDetails.size(); i++) {
    if (null != jsonDetails.get(Integer.toString(i)) {
        builder.append("APPEND TEXT HERE");
    }
}
mh.textView.setText(builder.toString());

答案 1 :(得分:0)

最后用“,”引用创建一个新的stringbuilder对象。并将每个字符串附加到文本视图。最后,当使用线性布局n的东西时,我得到输出正常工作。谢谢你的帮助:)