Java(Android)如何在与其他线性布局的线性布局中使用控件进行迭代

Java(Android)如何在与其他线性布局的线性布局中使用控件进行迭代,java,android,eclipse,Java,Android,Eclipse,我有一个线性布局和另外4个线性布局..这些线性布局里面有一些复选框。我想获取这些复选框的状态(是否选中)。。我该怎么做 问候 Rafael首先,必须获取对父LinearLayout的引用,假设父LinearLayout存储在名为“a”的变量中。接下来,必须使用android:id XML属性为子LinearLayout和复选框分配一个id。让我们假设子LinearLayout的id为“b”,并且您希望其值的复选框的id为“c”。然后你说: LinearLayout b = (LinearLayo

我有一个线性布局和另外4个线性布局..这些线性布局里面有一些复选框。我想获取这些复选框的状态(是否选中)。。我该怎么做

问候


Rafael

首先,必须获取对父LinearLayout的引用,假设父LinearLayout存储在名为“a”的变量中。接下来,必须使用android:id XML属性为子LinearLayout和复选框分配一个id。让我们假设子LinearLayout的id为“b”,并且您希望其值的复选框的id为“c”。然后你说:

LinearLayout b = (LinearLayout)(a.findViewById(R.id.b));
CheckBox c = (CheckBox)(b.findViewById(R.id.c));
boolean checked = c.isChecked();
编辑: 如果要在其上循环,只需使用for loops:

//assume that "a" is your parent LinearLayout
ArrayList<CheckBox> allCheckBoxes = new ArrayList<>();

ArrayList<LinearLayout> linearLayouts = new ArrayList<>;
for(int i = 0; i < linearLayouts.size())
{
    if(a.getChildAt(i) instanceof LinearLayout)
    {
        linearLayouts.add((LinearLayout)(a.getChildAt(i)));
    }
}
for(LinearLayout linearLayout : linearLayouts)
{
    ArrayList<CheckBox> checkBoxes= new ArrayList<>;
    for(int i = 0; i < checkBoxes.size())
    {
        if(linearLayout.getChildAt(i) instanceof CheckBox)
        {
            checkBoxes.add((CheckBox)(linearLayout.getChildAt(i)));
        }
    }
    allCheckBoxes.addAll(checkBoxes);
}
//假设“a”是您的父线性布局
ArrayList All复选框=新建ArrayList();
ArrayList linearLayouts=新的ArrayList;
对于(int i=0;i

现在您有了一个名为
allcheckbox
ArrayList
,您可以调用
CheckBox.isChecked()
打开。

我需要为特定的数组保存数据…eagle,谢谢您的回答,但我想做一个循环,用许多线性布局进行迭代,一个在另一个内部。。。我用一个LinearLayout做了一个循环,但我不知道如何在循环中做循环。我添加了一些关于如何在LinearLayout上循环以获得所需结果的信息。