【问题标题】:How to get checkboxes result in Android如何在Android中获取复选框结果
【发布时间】:2016-01-12 15:42:32
【问题描述】:

我根据编号以编程方式创建了复选框。数据库中的任务数

例如:3 个任务,3 个复选框

布局

没有。任务数:3

它将创建这个:

任务 1 [ ]

任务 2 [ ]

任务 3 [ ]

[提交]

例如:5 个任务,5 个复选框

布局

没有。任务数:5

它将创建这个:

任务 1 [ ]

任务 2 [ ]

任务 3 [ ]

任务 4 [ ]

任务 5 [ ]

[提交]

我想要的是当用户检查并提交时,我想知道检查了哪些任务。就像如果任务 3 和任务 4 被检查然后提交,显示消息是任务 3 和任务 4 被检查。

OR 任务1、任务2、任务3勾选后提交,显示信息为任务1、任务2、任务3勾选。该怎么做?

更新: 点击方法

cb.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {
                      if(cb.isChecked()){
                            list.add(task.getTaskId());
                            i++;
                         }

                    }

}); 

数组为空。我不知道为什么。我设置了这个条件 cb.isChecked() 以便只有选中的项目包含在数组中。

【问题讨论】:

    标签: android checkbox


    【解决方案1】:

    如果复选框有不同的 id,您可以使用 id 来确定选中的复选框。否则,您可以使用setTag() 方法给复选框一个标签。点击后可以拨打checkbox.getTag()查看是哪一个。

    评论更新:

    如果您通过代码创建它们,您可以为它们提供生成的 ID。为每个复选框添加一个资源 ID,如下所示:

    <item type="id" name="checkbox_task_1" />
    

    或者其他方法,给他们一个标签。所以当你创建这样的复选框代码时:

    checkbox.setTag("checkBox1");
    

    你可以使用任何你想要的对象,例如一个整数。在你的 onClick 方法中你应该有这样的东西:

    String tag = (String) checkbox.getTag();
    if ("checkBox1".equals(tag)) {...}
    

    第二次更新:

    用于创建复选框:

    for (int i = 0; i < userTasks.size(); i++) {
      ...
      checkBox.setTag(i);
    }
    

    在您的 onClick 方法中:

    int tag = (Integer) checkbox.getTag();
    if (tag == 1) {...}
    

    下一次更新 - onClick

    public void onClick(View v) {
      CheckBox cb = (CheckBox) v;
      if(cb.isChecked()) {
        list.add((Integer) cb.getTag());
      }
    }
    

    【讨论】:

    • 但我无法确定 ID。我根据编号以编程方式创建了复选框。任务。
    • 如果您不知道用户将输入多少个任务怎么办?为了确定,我是否必须制作 1000 个项目 ID?
    • 导致没有。任务的数量基于用户输入
    • 您是在循环中创建它们吗?然后就可以使用索引作为标签了。
    • 困惑。如何知道复选框是否被选中?比如一个标签为 12 的复选框,如何知道它是否被选中?
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多