Android listview适配器根据父级和子级创建行

时间:2015-02-05 09:53:11

标签: android android-listview android-arrayadapter

"parent": [
       {        
           "type": "Category",
           "label": "Transition",    
           "isButtonGroup": false,
           "children": [
                  {
                       "label": "Date Of case (Est.)",
                       "questionType": "DateTime",
                  },
                  {
                       "label": "Benchmark",
                       "questionType": "Float",
                  },

@Override
    public Children getItem(int position) {
          .....
        return Children ;
    }

case1:我想在一行中显示一个孩子。

case2:我想在一行中显示所有孩子。

因为我为每个孩子调用了getView()方法,它只显示第一个案例。

我无法获得案例2,任何帮助或提示都将受到赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

在自定义适配器的getView()方法中,如果您想为所有子项创建一行,则添加此foreach循环:

<强>假设: - allTheChildren是ArrayList,它包含调用自定义适配器的父级的所有子级。 - getValue()方法是返回子内容的方法。 - rowView =表示ListView中每一行的布局。 - textView =设置子项的textView(这是rowView布局的一部分)。

String theFinalStrng = "";     
for (Child c : allTheChildren) {
    theFinalString = theFinalString + c.getValue() + " ";
}
textView.setText(theFinalString);
return rowView;

这样,如果您有多个子节点,则迭代它们并将它们附加到一个字符串中,该字符串在您添加到textview的末尾,因此在同一行中。

我在这里缺少有价值的信息,因此我无法准确建议您需要编写的代码。替换为您拥有的适当变量和类型。