在android中听动态创建的切换按钮

时间:2016-09-10 04:09:14

标签: java android android-studio

大家好我正在实现一个带有动态创建的切换按钮的控制板,其中切换按钮的数量也是动态的,我很难将功能附加到动态创建的按钮上,

 for (int i = 0; i < len; i++) {
 ToggleButton tb[i] = new ToggleButton(this);
            LinearLayout.LayoutParams tbparams = new LinearLayout.LayoutParams
                    (90, LinearLayout.LayoutParams.WRAP_CONTENT);
            tbparams.setMargins(120, 0, 0, 0);
            tb[i].setBackgroundResource(R.drawable.bgtoggle);
            tb[i].setId(i+1);
            tb[i].setText("toggle_btn"+i+1);
            tb[i].setPadding(4, 4, 4, 4);
            tb[i].setLayoutParams(tbparams);
}

2 个答案:

答案 0 :(得分:1)

将CheckedChangeListener实现为:

 df.groupByKey(r => r.getAs[Int]("ID"))
      .mapGroups{case(id,rows) => {
        val sorted = rows
          .toVector
          .map(r => (r.getAs[String]("Word"),r.getAs[java.sql.Timestamp]("Timestamp")))
          .sortBy(_._2.getTime)

        (id, 
         sorted.map(_._1).mkString(" "),
         sorted.map(_._2).head,
         sorted.map(_._2).last
         )  
        }
      }.toDF("ID","Words","StartTime","EndTime")

并将其设置为:

    OnCheckedChangeListener listener = new 
    CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
}

您可以通过在tb.setOnCheckedChangeListener(listener); 方法中调用buttonView.getId()来检索切换按钮的ID,并根据Id执行特定任务。

答案 1 :(得分:0)

很抱歉这么晚,我希望有人会认为这很有用

 tb[i].setOnCheckedChangeListener(handleOnClick(tb[i],tb[i].getId(),
tb[i].getTag(),iv[i],iv[i].getTag()));
/*Function declartion for dynamic Toggle button listening provided a tag is provide to uniquely identify the dyanmic buttons*/

//切换按钮功能

    private CompoundButton.OnCheckedChangeListener handleOnClick(final ToggleButton toggleButton, final int id, final Object tag ) {
............................ //Do your wish
}