更新:我刚刚在上面添加了第二组按钮,没有任何方法,所以这两个按钮不会干扰。
要明确的是,以下是针对simon所说的类型游戏,其中计算机播放按钮模式,用户必须按正确的顺序点击它们。
我正在以编程方式调用一系列按钮作为演示给用户,他们希望按下那些按钮。但是当按下演示按钮时,他们的方法被调用,这会给用户带来麻烦。
如何只调用按钮动画,以便仍然显示演示但是没有调用onClick方法?
以下是一些相关代码:
public void clickBut(View view, int[] list, int level) {
Button redBut = (Button)findViewById(R.id.redBut);
Button blueBut = (Button)findViewById(R.id.blueBut);
Button greenBut = (Button)findViewById(R.id.greenBut);
Button yellowBut = (Button)findViewById(R.id.yellowBut);
for (int i = 0; i < level; i++) {
if (list[i] == 0) {
redBut.setPressed(false);
redBut.performClick();
redBut.setPressed(true);
redBut.invalidate();
redBut.setPressed(false);
redBut.invalidate();
}
else if (list[i] == 1) {
redBut.setPressed(false);
blueBut.callOnClick();
blueBut.setPressed(true);
blueBut.invalidate();
blueBut.setPressed(false);
blueBut.invalidate();
}
else if (list[i] == 2) {
redBut.setPressed(false);
greenBut.callOnClick();
greenBut.setPressed(true);
greenBut.invalidate();
greenBut.setPressed(false);
greenBut.invalidate();
}
else if (list[i] == 3) {
redBut.setPressed(false);
yellowBut.callOnClick();
yellowBut.setPressed(true);
yellowBut.invalidate();
yellowBut.setPressed(false);
yellowBut.invalidate();
}
}
}
请原谅我,如果setPressed(布尔)行是多余的或不稳定的我尝试不同的组合。
我需要播放并点击正确的按钮而不激活方法,然后将其打开给用户,这样他/她就可以点击按钮并调用相应的方法。
让我知道是否有更多的代码会有所帮助。
答案 0 :(得分:0)
替换 -
redBut.setPressed(false);
redBut.performClick();
redBut.setPressed(true);
redBut.invalidate();
redBut.setPressed(false);
redBut.invalidate();
逐 下面的代码显示按钮单击1秒钟: -
button.performClick();
button.setPressed(true);
runnable = new Runnable() {
@Override
public void run() {
//called after 1000 millisecond/ 1 second
button.setPressed(false);
}
};
handler.postDelayed(runnable, 1000);
如果要显示所选按钮,请使用 -
button.setPressed(true);
答案 1 :(得分:0)
以下应该做的伎俩
mButton.setOnClickListener(null);