gpt4 book ai didi

java - 使用 ImageButtons 数组判断按下哪个按钮

转载 作者:行者123 更新时间:2023-12-02 03:37:26 25 4
gpt4 key购买 nike

我有一个基本的刽子手游戏,用于猜测的按钮都通过 ImageButtons 放置在屏幕上(我的效果很好)。

我声明图像按钮 ID 如下:

    private static final int[] BUTTON_IDS = {
R.id.imageButtonA, R.id.imageButtonB, R.id.imageButtonC, R.id.imageButtonD, R.id.imageButtonE,
R.id.imageButtonF, R.id.imageButtonG, R.id.imageButtonH, R.id.imageButtonI, R.id.imageButtonJ,
R.id.imageButtonK, R.id.imageButtonL, R.id.imageButtonM, R.id.imageButtonN, R.id.imageButtonO,
R.id.imageButtonP, R.id.imageButtonQ, R.id.imageButtonR, R.id.imageButtonS, R.id.imageButtonT,
R.id.imageButtonU, R.id.imageButtonV, R.id.imageButtonW, R.id.imageButtonX, R.id.imageButtonY, R.id.imageButtonZ
};
private List<ImageButton> buttonLetters = new ArrayList<ImageButton>();

编辑以显示解决方案:我通过执行以下操作来注册他们的 OnClick:

    for (int id: BUTTON_IDS) {
final ImageButton buttonLettersUsage = (ImageButton)findViewById(id);
if (buttonLetters != null) {
assert buttonLettersUsage != null;
buttonLettersUsage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HangmanActivity.this, " " + buttonLettersUsage.getId(), Toast.LENGTH_SHORT).show();
switch (buttonLettersUsage.getId()){
case R.id.imageButtonQ:
strGuessed = "Q";
break;
case R.id.imageButtonW:
strGuessed = "W";
break;
case R.id.imageButtonE:
strGuessed = "E";
break;
// ... Repeat for rest of buttons ...
default:
break;
}
btnGuessClicked(theIncorrectGuesses, theWord);
buttonLettersUsage.setVisibility(View.INVISIBLE);
}
});
}
}

现在的问题是,自从实现这部分以来,我一直在对应用程序进行更多的工作,并且所有 buttonLettersUsage.getId() 都已更改。

我的问题是:他们会随时改变吗?我没有在 Activity 中添加任何新组件,为什么它们发生了变化?有没有更好的方法来找出按下了哪个按钮,并根据按下的按钮为 strGuessed 提供不同的值?

非常感谢。

最佳答案

不要在 switch case 中使用数字 id,请按如下方式使用。

 switch (buttonLettersUsage.getId()){
case R.id.imageButtonA:
strGuessed = "Q";
break;
case R.id.imageButtonB:
strGuessed = "W";
break;
case R.id.imageButtonC:
strGuessed = "E";
break;
// ... Repeat for rest of buttons ...
default:
break;
}

也不要像这样实现 onClickListener,使用您的 Activity 来实现 View.OnClickListener,然后将循环中的监听器设置为

buttonLettersUsage.setOnClickListener(this);

这是实现 OnClickListener 的 Activity 的上下文

关于java - 使用 ImageButtons 数组判断按下哪个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37273605/

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