结合3个字符串arraylists

时间:2016-01-01 13:31:09

标签: android arraylist

首先祝大家新年快乐,祝福。

我有一个问题。假设我有3个字符串arraylists:

Math.Min(clb1.Items, clb2.Items)

是否可以让输出像这样?

提前谢谢。

  • Groupe A

  • 巴西 - Value1

  • 墨西哥 - Value2

  • 克罗地亚 - Value3

  • Groupe B

  • 喀麦隆 - Value4

  • 荷兰 - Value5

  • Groupe C

  • 智利 - Value6

  • 西班牙 - Value7

  • Groupe D

  • 澳大利亚 - Value8

  • Groupe E

  • 哥伦比亚 - Value9

已经尝试了String group_names[] = { "Groupe A", "Groupe B", "Groupe C", "Groupe D", "Groupe E" }; String country_names[] = { "Brazil", "Mexico", "Croatia", "Cameroon", "Netherlands", "Chile", "Spain", "Australia", "Colombia" }; String country_values[] = { "Value1", "Value2", "Value3", "Value4", "Value5", "Value6", "Value7", "Value8", "Value9" }; 循环,但它不适合我。

for

1 个答案:

答案 0 :(得分:0)

如果您只需要在子视图中并排显示两个textView(而不是图像和文本),则根本不需要遍历country_names

只需将getChildView()更新为,

@Override
public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) 
{

    Child child = (Child) getChild(groupPosition, childPosition);
    if (convertView == null) 
    {
        LayoutInflater infalInflater = (LayoutInflater) context
                .getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.child_item, null);
    }
    TextView tv1 = (TextView) convertView.findViewById(R.id.country_name);
    TextView tv2 = (TextView) convertView.findViewById(R.id.value);

    tv1.setText(child.getName().toString());
    tv2.setText(child.getValue().toString());

    return convertView;
}

假设您的child_item.xml会是这样的,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:paddingTop="4dp"
    android:paddingBottom="4dp"
    android:layout_marginLeft="50dp">

    <TextView
        android:id="@+id/country_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="20dp" />

      <TextView
        android:id="@+id/value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="20dp" />

</RelativeLayout>

希望它有所帮助。

编辑在您发表评论后,我认为您需要为每个群组提供一系列尺寸。说,

int group_sizes[] = { 3, 2, 2, 1, 1}; 

你问我的代码会重写为,

public ArrayList<Group> SetStandardGroups() 
{
    //....
    // The 3 arraylists
    ArrayList<Group> list = new ArrayList<Group>();
    ArrayList<Child> ch_list;
    int size = 0, i = -1, j = 0;
    for (String group_name : group_names) 
    {
        i++;
        size = size + group_sizes[i];
        Group gru = new Group();
        gru.setName(group_name);
        ch_list = new ArrayList<Child>();
        for (; j < size; j++) 
        {
            Child ch = new Child();
            ch.setName(country_names[j]);
            ch.setValue(country_values[j]);
            ch_list.add(ch);
        }
        gru.setItems(ch_list);
        list.add(gru);
    }
    return list;
}

希望这能解决列出的所有问题。

相关问题