生成复选框已检查状态

时间:2018-05-03 15:47:50

标签: android checkbox generate

我使用以下代码生成复选框:

public void drawCAnswers(int pst){
    rcflag = 1;
    int drawables = qmclist.get(pst).getAnswers().size();
    LinearLayout ll = new LinearLayout(this);
    CheckBox[] cbs = new CheckBox[drawables];
    ll.setOrientation(LinearLayout.VERTICAL);
    for (int i=0; i<drawables;i++){
        cbs[i] = new CheckBox(this);
        cbs[i].setId(i);
        cbs[i].setText(current.getAnswers().get(i).getAns());
        ll.addView(cbs[i]);
    }
    parentLinearLayout.addView(ll, parentLinearLayout.getChildCount());
}

我希望能够在单击按钮时检查选中了哪个复选框,并获取其文本。我的代码怎么能完成这个呢?

设置onClick侦听器似乎不对,因为只有当我单击“下一步”按钮时,我才能看到哪些被选中,如果在单击someones(de)之前选择一个复选框,则无关紧要。 / p>

例如,在下图中,当我点击“问题suivante”时,我应该获得两个选中复选框的文本,并最终将它们保存在某个列表中。

enter image description here

非常感谢。

1 个答案:

答案 0 :(得分:1)

当面对选中的更改事件时,您尝试获取字符串并存储到列表中。 试试这个:

List<String> yourList = new ArrayList<>();

for (int i=0; i<drawables;i++){
    cbs[i] = new CheckBox(this);
    cbs[i].setId(i);
    cbs[i].setText(current.getAnswers().get(i).getAns());
    cbs[i].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    yourList.add(buttonView.getText().toString());
                } else {
                    yourList.remove(buttonView.getText().toString());
                }
            }
    });
    ll.addView(cbs[i]);
}