在xml代码中设置监听事件,在Button标签里设置onclick属性调用需要执行的方法。但是方法的签名必须是如下格式的:
访问权限必须是public类型
必须无返回值
参数列表必须是View类型的参数
如下是xml代码
public class MyView extends LinearLayout implements View.OnClickListener{
private Context mContext;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mContext = context;
}
private void make20Buttons(){
int i = 0;
while(i<20){
Button button = new Button(mContext);
button.setTag(i);
button.setOnClickListener(this);
this.addView(button);
i++;
}
}
@Override
public void onClick(View button) {
// TODO Auto-generated method stub
if(button instanceof Button){
switch ((Integer)button.getTag()) {
case 0:
break;
case 1:
break;
case 20:
break;
default:
break;
}
}
}
}
建议是用网格布局,至于监听,那就得一个个做,没捷径的。
可以同一个监听器对20个button进行监听