gpt4 book ai didi

java - 为复选框数组设置 OnClickListener

转载 作者:行者123 更新时间:2023-12-02 13:13:12 27 4
gpt4 key购买 nike

我有一组复选框,它们都需要 OnClickListener 来查看它们何时被选中/取消选中。这是我所拥有的:

CheckBox[] sens = new CheckBox[3];
for (int i = 0; i < 3; i++)
{
cb = new CheckBox(this);
cb.setText(strings[i]);
cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (cb.isChecked()) {
System.out.println("Checked");
} else {
System.out.println("Unchecked");
}
}
});
sens[i] = cb;
mainlayout.addView(sens[i]);
}

但是监视器/控制台只打印“Unchecked”,无论是否选中。有更好的方法来做到这一点吗?复选框必须是动态的

最佳答案

您应该使用setOnCheckedChangeListener方法而不是setOnClickListener,并且您可以使用setTag方法设置一个位置/id来处理复选框。

文档:注册一个回调,当此按钮的选中状态发生变化时调用。

private void createCheckBoxes(final int count) {
for (int i = 0;i < count; i++) {
final CheckBox checkBox = createCheckBox(this, strings[i], i);
mainlayout.addView(checkBox);
}
}

private CheckBox createCheckBox(final Context context, final String text, final int id) {
final CheckBox checkBox = new CheckBox(context);

checkBox.setTag(id);
checkBox.setText(text);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
if (isChecked) {
System.out.println("Checked");
} else {
System.out.println("Unchecked");
}
}
});

return checkBox;
}

关于java - 为复选框数组设置 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859318/

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