我是否需要添加很多方法,或者是否可以调用一种方法
Do I need to add many methods, or is it possible to call one method
我有一个井字游戏应用程序,我想知道是否可以将所有井字游戏按钮设置为一个 on_click 事件,然后创建一个变量来获取按钮的 ID单击按钮,然后将其作为参数传递给将执行实际功能的另一个方法,或者我是否需要为每个按钮创建不同的 on_click 事件?
您可以只使用一个侦听器 - onClick
方法采用 View
参数,即被单击的视图。然后您可以找出您的哪个按钮是:
View.OnClickListener sharedClickHandler = new View.OnClickListener() {
public void onClick(View view) {
int id = view.getId();
// Do the right thing based on the ID
}
}
具体如何根据 ID 执行您需要执行的操作取决于您。对于简单的示例,您可以只使用 switch/case 语句;在其他情况下,如果您要从 ID 映射到其他对象(例如表示游戏状态的可变对象),您可以使用 Map<Integer, GameObject>
并获得正确的对象...
您可以这样做,并根据需要添加任意数量的 "cases":
View.OnClickListener sharedClickHandler = new View.OnClickListener() {
public void onClick(View view) {
switch(view.getId()) {
case R.id.button1:
// handle first button
break;
case R.id.button2:
// handle second button
break;
}
}
}
你好,你可以对按钮使用相同的点击事件,你可以将一个整数作为标签附加到按钮上,这样你就可以知道点击了哪个按钮并进行相应处理。
button1.setTag(1);
button2.setTag(2);
button3.setTag(3);
button1.setOnClickListener(buttonClick());
button2.setOnClickListener(buttonClick());
button3.setOnClickListener(buttonClick());
public View.OnClickListener buttonClick(){
View.OnClickListener click = new View.OnClickListener() {
@Override
public void onClick(View v) {
int numberClicked = v.getTag();
//You have now the button clicked
}
};
return click;
}
我有一个井字游戏应用程序,我想知道是否可以将所有井字游戏按钮设置为一个 on_click 事件,然后创建一个变量来获取按钮的 ID单击按钮,然后将其作为参数传递给将执行实际功能的另一个方法,或者我是否需要为每个按钮创建不同的 on_click 事件?
您可以只使用一个侦听器 - onClick
方法采用 View
参数,即被单击的视图。然后您可以找出您的哪个按钮是:
View.OnClickListener sharedClickHandler = new View.OnClickListener() {
public void onClick(View view) {
int id = view.getId();
// Do the right thing based on the ID
}
}
具体如何根据 ID 执行您需要执行的操作取决于您。对于简单的示例,您可以只使用 switch/case 语句;在其他情况下,如果您要从 ID 映射到其他对象(例如表示游戏状态的可变对象),您可以使用 Map<Integer, GameObject>
并获得正确的对象...
您可以这样做,并根据需要添加任意数量的 "cases":
View.OnClickListener sharedClickHandler = new View.OnClickListener() {
public void onClick(View view) {
switch(view.getId()) {
case R.id.button1:
// handle first button
break;
case R.id.button2:
// handle second button
break;
}
}
}
你好,你可以对按钮使用相同的点击事件,你可以将一个整数作为标签附加到按钮上,这样你就可以知道点击了哪个按钮并进行相应处理。
button1.setTag(1);
button2.setTag(2);
button3.setTag(3);
button1.setOnClickListener(buttonClick());
button2.setOnClickListener(buttonClick());
button3.setOnClickListener(buttonClick());
public View.OnClickListener buttonClick(){
View.OnClickListener click = new View.OnClickListener() {
@Override
public void onClick(View v) {
int numberClicked = v.getTag();
//You have now the button clicked
}
};
return click;
}