我正在尝试实现复选框列表,因此在选择了多个复选框后,我想将它们存储在ArrayList中,然后在单击按钮后将它们发送到服务器。在momenant我在is语句中得到以下错误
View类型中的方法getId()不适用于arguments(int)
以及此行cb = new CheckBox(this);
可能已经指定了最终的局部变量cb
我该如何解决?
private void createCheckboxList(final ArrayList<Integer> items) {
//final CheckBox cb;
final LinearLayout ll = (LinearLayout) findViewById(R.id.lila);
for (int i = 0; i < items.size(); i++) {
CheckBox cb = new CheckBox(this);
cb.setText(items.get(i).toString());
cb.setId(i);
ll.addView(cb);
}
Button btn = new Button(this);
btn.setLayoutParams(new LinearLayout.LayoutParams(500, 150));
btn.setText("submit");
ll.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i : items) {
if (cb.getId(i).isChecked()) {
}
}
}
});
}
编辑:
我删除了final CheckBox cb;
并在for循环中分配了对象CheckBox cb = new CheckBox(this);
但是我在if语句中输入了这个错误cb cannot be resolved
如何分配它以获取错误?
当我将Checkbox指定为类变量时,我在if语句中收到此错误The method getId() in the type View is not applicable for the arguments (int)
。
答案 0 :(得分:0)
final LinearLayout ll = (LinearLayout) findViewById(R.id.lila);
for (int i = 0; i < items.size(); i++) {
CheckBox cb = new CheckBox(this);
cb.setText(String.valueOf(items.get(i)));
cb.setId(i);
ll.addView(cb);
}
使用此