检查表格布局中的所有checbox

时间:2017-04-26 09:35:05

标签: java android checkbox

我有动态创建的复选框,我想按一个按钮检查它们。我提到的按钮位于工具栏中,这是它的代码:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {

            case R.id.action_checkall:

                return true;

然后我在表格布局中有一个表格行,这是我创建checbox的表格行的代码

final TableRow row = new TableRow(getApplicationContext());
                    row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
                            TableLayout.LayoutParams.WRAP_CONTENT));
                    String[] colText={numerochip};
                    String[] colText2={marcaexploracao,marcaauricular,datanascimento};
                    for(final String text:colText) {
                        final CheckBox ch = new CheckBox(this);
                        ch.setTextColor(Color.parseColor("#808080"));
                        ch.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                                TableRow.LayoutParams.WRAP_CONTENT));
                        ch.setGravity(Gravity.CENTER);
                        ch.setTextSize(16);
                        ch.setPadding(5, 5, 5, 5);
                        ch.setText(text);
                        row.addView(ch);

所以我想知道,如何通过点击按钮检查所有的cheboxes。感谢

2 个答案:

答案 0 :(得分:4)

List<View> allVIEWS=new ArrayList<>();

现在每当您创建新的复选框时,只需将其添加到列表中:

CheckBox ch = new CheckBox(this);
......
.......
allVIEWS.add(ch);

现在立即检查所有内容:

    for (int i=0;i<allVIEWS.size();i++){
        if (allVIEWS.get(i) instanceof CheckBox){
            CheckBox chk = (CheckBox) allVIEWS.get(i);
            chk.setChecked(true);
        }

    }

答案 1 :(得分:3)

1)创建一个复选框列表。 (List<CheckBox> checkBoxList

2)在for循环中,创建复选框后,将这些复选框添加到checkBoxList。 (checkBoxList.add(ch)

3)单击该按钮时,请使用以下代码。

for(CheckBox checkBox : checkBoxList){

       checkBox.setChecked(true);

  }