大家好我正在实现一个带有动态创建的切换按钮的控制板,其中切换按钮的数量也是动态的,我很难将功能附加到动态创建的按钮上,
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);
}
答案 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
}