gpt4 book ai didi

java - 嵌套 onClick 监听器

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

我有一些代码需要帮助。我对这段代码的计划很简单。我有 3 个按钮,分别是 yellowBargreenBarredBar。我还有 3 张图像,颜色分别为黄色、绿色和红色。我想做的是,当我启动我的应用程序时,我的图像会随机弹出,无论出现哪种颜色,我都应该能够单击相应颜色的按钮。我也有时间,所以基本上我想尽可能正确地点击,但我的代码只运行一次。我的时间继续减少,但这段代码只运行一次。我该如何解决这个问题,以便它继续弹出随机彩色图像,直到时间用完?

while(gameTime > 0){
colorNum = new Random();
colorNumber = colorNum.nextInt(2);

switch (colorNumber){
case 0: colors.setDisplayedChild(0);
break;

case 1: colors.setDisplayedChild(1);
break;

case 2: colors.setDisplayedChild(2);
break;
}
colors.setVisibility(View.VISIBLE);
yellowBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 0){
points ++;
score.setText(String.valueOf(points));
}
}
});
greenBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 1){
points ++;
score.setText(String.valueOf(points));
}
}
});
redBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 2){
points++;
score.setText(String.valueOf(points));
}
}
});

}

最佳答案

更好的解决方案是在 onClick 事件上渲染图形。当您按下按钮时,您会检查答案是否正确,然后渲染图形。

像现在这样使用 while 循环是错误的,因为你的图形将一直渲染(无论是否按下按钮)

基本上(这不是一个解决方案,而是基于您的代码的指南):

         public void initialize(){
yellowBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 0){
points ++;
score.setText(String.valueOf(points));
updateColors();
}
}
});
greenBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 1){
points ++;
score.setText(String.valueOf(points));
updateColors();
}
}
});
redBar.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v){
if(colorNumber == 2){
points++;
score.setText(String.valueOf(points));
updateColors();
}
}
});

}
}

public void updateColors(){
colorNum = new Random();
colorNumber = colorNum.nextInt(2);

switch (colorNumber){
case 0: colors.setDisplayedChild(0);
break;

case 1: colors.setDisplayedChild(1);
break;

case 2: colors.setDisplayedChild(2);
break;
}
colors.setVisibility(View.VISIBLE);
}

关于java - 嵌套 onClick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455449/

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