gpt4 book ai didi

java - .setBackgroundColor() 在点击事件之外不起作用

转载 作者:行者123 更新时间:2023-12-01 05:14:27 26 4
gpt4 key购买 nike

我有一个看似简单的问题。我正在 ScrollView 内的线性布局内使用图像按钮。我为其中一个按钮设置了一个 onClickListener,它将颜色切换为红色,然后透明,然后再次切换回来。我尝试过调用 PerformClick() 并手动编写一个例程以在满足条件时触发。我遇到的问题是,无论我如何尝试执行此操作,调用 .setBackgroundColor() 的方法在调用时都会退出。我什至没有在我的日志中看到返回语句。这是代码。我确信这是一个简单的修复,但我对这些事情不太熟悉。另外,我没有使用任何 XML,并且希望尽可能避免使用它,因此请在发布建议时记住这一点。提前致谢!

我会尽力澄清我想要完成的任务。我试图模拟在单击事件期间触发的事件,而不发生单击事件。我已经用performClick() 和我在这里的方式尝试了这一点。在这两种情况下,我对 .setBackgroundColor() 的调用都没有触发并过早退出调用它的方法,并且它被调用。

经过一番折腾后,我发现该方法将触发 setBackgroundColor() 并在我使用 Color.RED 时继续该方法,因为它已经是红色了。如果我尝试任何其他颜色,它就不起作用。所以它似乎不想改变这种时尚的颜色。大家有什么想法吗?

这是处理程序:

IBFireBall.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
Log.d(TAG, "in onClick");
if (Fireball.activated) {
Fireball.activated = false;
AbilityWidget.IBFireBall.setBackgroundColor(0);
Log.d(TAG, "was activated");
} else {
Level.fireBall = new Fireball(context);
Fireball.activated = true;
AbilityWidget.IBFireBall.setBackgroundColor(Color.RED);
Log.d(TAG, "wasn't activated");
}

}

});

这里是另一种方法Log只打印出1和2:

public static void resetButton(String id) {

if (id.equals("Fireball")) {

if (Fireball.activated) {
Log.d(TAG,"inside resetbutton 1");
Fireball.activated = false;
Log.d(TAG,"inside resetbutton2" );
AbilityWidget.IBFireBall.setBackgroundColor(0);
Log.d(TAG,"inside resetbutton4" );

} else {

Level.fireBall = new Fireball(context);
Fireball.activated = true;
AbilityWidget.IBFireBall.setBackgroundColor(Color.RED);
Log.d(TAG, "wasn't activated");
}

}
}

最佳答案

1.首先不要使用"=="``来比较对象,使用.equals()`。

2. 您没有从 onClick() 调用 resetButton() 方法,如果它没有被调用。

关于java - .setBackgroundColor() 在点击事件之外不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497621/

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