类型View中的方法getId()不适用于参数(int)

时间:2015-05-30 21:48:31

标签: android

我正在尝试实现复选框列表,因此在选择了多个复选框后,我想将它们存储在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)

1 个答案:

答案 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);

   }

使用此