【问题标题】:Android multiple checkboxesAndroid 多个复选框
【发布时间】:2015-08-23 22:55:16
【问题描述】:

基本上我有 5 行 5 个复选框,这只是一行。 正如您所注意到的那样,它很乱,其中有 5 个甚至更糟。

我刚开始学习 android,所以我还不熟悉我得到的选项,但通常我认为我要么将所有框放在一个数组中并迭代它,要么为一行制作一个 JPanel 并添加面板 5 次。

最好的方法是什么?为什么?

     /**
     * Row 1 checkboxes
     */
    CheckBox row1box1 = (CheckBox) findViewById(R.id.row1checkBox1);
    CheckBox row1box2 = (CheckBox) findViewById(R.id.row1checkBox2);
    CheckBox row1box3 = (CheckBox) findViewById(R.id.row1checkBox3);
    CheckBox row1box4 = (CheckBox) findViewById(R.id.row1checkBox4);
    CheckBox row1box5 = (CheckBox) findViewById(R.id.row1checkBox5);
    row1box1.setOnClickListener(new StartListener(row1box1, chronometer, ringtone));
    row1box2.setOnClickListener(new StartListener(row1box2, chronometer, ringtone));
    row1box3.setOnClickListener(new StartListener(row1box3, chronometer, ringtone));
    row1box4.setOnClickListener(new StartListener(row1box4, chronometer, ringtone));
    row1box5.setOnClickListener(new StartListener(row1box5, chronometer, ringtone));

【问题讨论】:

    标签: java android button checkbox


    【解决方案1】:

    一种解决方案是使用ButterKnife 中的“查看列表”选项。

    @Bind({ R.id.row1checkBox1, R.id.row1checkBox2, R.id.row1checkBox3})
    List<CheckBox> checkBoxViews;
    

    然后您可以使用ButterKnife.apply 一次性作用于所有视图,也可以迭代列表。

    【讨论】:

      【解决方案2】:

      我想你可以试试这些方面的东西。完全未经测试:

      private int[] checkBoxIds = new int[] { R.id.row1checkBox1, R.id.row1checkBox 2...(etc.)}
      private List<CheckBox> checkBoxList= new ArrayList<>(checkBoxIds.length);
      
      for (int i = 0; i < checkBoxIds.length; i++) {
          checkBoxList.add(i, (CheckBox) findViewById(checkBoxIds[i]));
          checkBoxList.get(i).setOnClickListener(new StartListener(checkBoxList.get(i), chronometer, ringtone);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-12
        • 2015-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多