【发布时间】:2020-10-27 04:02:30
【问题描述】:
我找到了this answer from @anthonycr,但缺乏评论所需的声誉。不过,我可以澄清一下。
我是否需要在onCreate 方法或例如m1.setid 中添加额外的声明按钮就足够了?如果我的按钮太多(50 个),如何在不写 50 行 Button btn = (Button) findviewbyId(R.id.x) 的情况下声明它?
在下面找到我关于 OnTouchListener 的代码。但是,我需要用findviewbyId 声明我的按钮?如果是这样,我怎样才能声明 50 个按钮而不写 50 行 findviewbyId
void intialization(){
Button m1, m2, m3, m4;
... //do initialization stuff
m1.setId(1);
m2.setId(2);
m3.setId(3);
m4.setId(4);
MyTouchListener touchListener = new MyTouchListener();
m1.setOnTouchListener(touchListener);
m2.setOnTouchListener(touchListener);
m3.setOnTouchListener(touchListener);
m4.setOnTouchListener(touchListener);
}
public class MyTouchListener implements OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(v.getId()){
case 1:
//do stuff for button 1
break;
case 2:
//do stuff for button 2
break;
case 3:
//do stuff for button 3
break;
case 4:
//do stuff for button 4
break;
}
return true;
}
}```
【问题讨论】:
-
添加了原始答案的链接,改进了语法。
标签: java android android-studio button event-handling