gpt4 book ai didi

java - 通过按钮更改按钮的 onClick() 方法

转载 作者:行者123 更新时间:2023-12-02 03:36:22 24 4
gpt4 key购买 nike

我有两种方法:

addCard();

removeCard();

我总共有 6 个按钮

一开始,所有按钮都有一个 onClick() 方法,即 addCard() 方法。单击另一个按钮(第 7 个按钮)后,所有其他 6 个按钮都应将其 onClick() 方法从 addCard() 更改为 removeCard() .

我该如何做到这一点?只是为了让您知道我的想法,我开始将这两个方法作为按钮的普通方法,因此它们采用 View v 作为参数,有什么方法可以真正“交换”方法

addCard():

public void addCard(View v){
switch (v.getId()){
case R.id.first :
demoniacList.add(new Demoniac());
first.setEnabled(false);
case R.id.second :
guardList.add(new Guard());
second.setEnabled(false);
case R.id.third :
masonsList.add(new Masons());
masonsList.add(new Masons());
third.setEnabled(false);
case R.id.fourth :
mediumList.add(new Medium());
fourth.setEnabled(false);
case R.id.fifth :
if (demoniacList.size() + guardList.size() + masonsList.size() +
mediumList.size() + villagerList.size() + werehamsterList.size() < players.size()-1) {
villagerList.add(new Villager());
} else {
villagerList.add(new Villager());
fifth.setEnabled(false);
}
case R.id.sixth :
werehamsterList.add(new Werehamster());
sixth.setEnabled(false);
}
}

最佳答案

使用 boolean 变量,如下面的代码所示。

public class MainActivity extends Activity implements View.OnClickListener {

private boolean isAdd=true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

...
mButton0.setOnClickListener(this);
mButton1.setOnClickListener(this);
...
mButton6.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch(v.getId()) {
case 0:
if(isAdd) {
addCard();
} else {
removeCard();
}
case 1:
if(isAdd) {
addCard();
} else {
removeCard();
}
...
case 6:
if(isAdd) {
addCard();
isCard=false;
} else {
removeCard();
isCard=true;
}
}
}

}

关于java - 通过按钮更改按钮的 onClick() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37399346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com