我正在设计一个井字游戏。
游戏的布局是LinearLayout
(垂直),它有一个按钮(重置),一个TableLayout
和另一个按钮(提交)。 TableLayout
有TableRow
s,而Button
则为TableLayout
。
我的设计理念是,当你点击提交时,它会将最后按下的按钮(在TableLayout
中)作为“用户输入”发送到正在运行的游戏,然后在每次移动后,{{1更新以反映更改(文本更改以反映哪个玩家拥有该点,禁用按钮的可点击性,以及为什么不亮的颜色)。
private void updateButton(Button button, char claimant)
{
button.setText(claimant == 'X' ? "X" : claimant == 'O' ? "O" : " ");
button.setTextColor(claimant == 'X' ? 0x500000 :
claimant == 'O' ? 0x332c2c :
button.getCurrentTextColor());
button.setClickable(claimant == ' ');
}
我尝试在updateButton()
的末尾添加这些行,似乎没有任何效果:
button.setWillNotDraw(false);
button.bringToFront();
button.invalidate();
button.postinvalidate();
我需要做的是 - 禁用制作按钮并使其显示为一个。