gpt4 book ai didi

java - 更新循环中按钮 onClickListener 中的数组元素 - android

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

基本上,我正在为 Android 实现一个黑白棋应用程序,并且我目前正在尝试更新二维数组中的元素。该调用位于 onClickListener 中,该监听器位于用于设置黑白棋盘的循环中。问题是,一旦放置了一个棋子,元素 isPositionEmpty 应该更改为 false,但事实并非如此。这是代码 fragment :

for(int n = 0; n < 8; n ++){

...


for(int i = 0; i < 8; i++ ){
final ImageView button = new ImageView(this);

final int countN = n;
final int countI = i;

...

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
String buttonID = String.valueOf(button.getId());
Log.d("buttonPressedID",buttonID);

Log.d("isPositionEmpty", boardString);



board[countI][countN].isPositionEmpty = false;

非常感谢您的帮助!提前致谢!

最佳答案

看起来您混淆了 x 和 y 值? board[countN][countY] 的顺序与构建二维数组的顺序相同。

board[countN][countI].isPositionEmpty = false;

您只有代码的摘录,但我会创建一个类来跟踪扩展 ImageView/ImageButton 的每个方 block 。然后它会自行处理,您不必自己设置它 - 逻辑将在类中作为实际填充正方形的操作的副作用。例如,您可以调用玩家一或玩家二的方法 recordMove(int move)。然后,更改图像并查看它是否为空的所有逻辑都在类内处理。

然后您只需在嵌套循环中创建自定义按钮/ View ,它们就会自行处理。也传递 1 个监听器 - 无需创建 64 个匿名监听器。

当你以这种方式组织它时,就很难把它弄乱了。

关于java - 更新循环中按钮 onClickListener 中的数组元素 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9103810/

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