在一个项目中,如果有几十个控件的ID需要得到并且每个控件都有自己的点击响应事件,我是不是只能一个个的去声明并且用findviewbyId得到控件的ID,再然后每一个控件都给它写一个响应事件 有没有简单一点的方法 多谢
截获程序消息队列,检索ID,消息,如果需要处理就处理。相同的处理就共用一段代码。
findViewById(id).setOnClickListener(this); 可以写一个循环:
mMainView = li.inflate(R.layout.pv_yu_yue, null);
for (int id : new int[] {
R.id.a,R.id.b, R.id.c,
R.id.d, R.id.e,R.id.f,
等等.............}) {
mMainView.findViewById(id).setOnClickListener(this);
}
响应事件:
@Override
public void onClick(View v) {
int id = v.getId();
String screenSize = Global.sWidth > 1200 ? "&s=1" : "";
switch (id) {
case R.id.a: {
响应事件
}
break;
case R.id.b: {
响应事件
}
等等
....
....
}
我是这样做的...................................
不太清楚你这些控件是随机生成的还是固定的,如果是随机生成的那更简单,重写他的监听再控件集合中调用即可
class ItemOnClickListener implements OnClickListener {
int id;
public ItemOnClickListener(int id) {
super();
this.id = id;
}
@Override
public void onClick(View v) {
响应时间
}
}