gpt4 book ai didi

java - 如何从动态添加的复选框中获取 id 及其值

转载 作者:行者123 更新时间:2023-11-30 01:20:34 26 4
gpt4 key购买 nike

我想获取动态添加的 CheckBox 的值,但是当我想查看我的 checkBox.isChecked() 之一时;它只在我检查最后创建的复选框时响应!这是我的容器。

for (String answer : multiMap.get(questionFromMultiMap))
{

i++;
et_button = (CheckBox) getLayoutInflater().inflate(R.layout.numberofchoices, null);
et_button.setText(answer);
et_button.setId(i);
container.addView(et_button);
listOfChoice.add(answer);


}

我想检查它是这样检查的:

btnCorrect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (et_button.isChecked()){
System.out.println(et_button.getId());
}else{
System.out.println("pouet");
}

}
});

在谷歌上没有找到正确的答案!感谢帮助

最佳答案

当您调用 et_button.isChecked() 时,它会在最后一个膨胀 View 上调用,因为您在循环的每次迭代中都会覆盖它。您应该将它们添加到列表中,然后在 onClickListener 中检查选中了哪一个:

List<CheckBox> list = new LinkedList<>(); //this should be visible from onClickListener, so it should be an instance field

for (String answer : multiMap.get(questionFromMultiMap)) {
i++;
CheckBox et_button = (CheckBox) getLayoutInflater().inflate(R.layout.numberofchoices, null);
et_button.setText(answer);
et_button.setId(i);
list.add(et_button);
container.addView(et_button);
listOfChoice.add(answer);
}

btnCorrect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(CheckBox cb : list) {
if (cb.isChecked()){
System.out.println(cb.getId());
}else{
System.out.println("pouet");
}
}
}
});

还没有测试过,但应该可以。

关于java - 如何从动态添加的复选框中获取 id 及其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com