You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中实现井字棋按钮点击文字变色?

井字棋按钮点击显示X/O并设置对应颜色的实现方案

嘿,我明白你想要实现的功能:点击按钮后显示X或O,同时X设为蓝色、O设为红色。下面是完整的代码实现,你可以直接整合到你的项目里:

package com.example.d4rmybraine.tic_tac_toe;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    // 标记当前回合是X玩家还是O玩家,默认X先下
    private boolean isPlayerXTurn = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // 确保你的布局文件是activity_main,且包含9个井字棋按钮
    }

    // 按钮点击事件处理方法,需在布局文件给每个按钮设置android:onClick="onTileClicked"
    public void onTileClicked(View view) {
        Button clickedButton = (Button) view;

        // 检查按钮是否已被点击,避免重复操作
        if (!clickedButton.getText().toString().isEmpty()) {
            Toast.makeText(this, "这个格子已经被占用啦!", Toast.LENGTH_SHORT).show();
            return;
        }

        // 根据当前玩家回合设置文本和对应颜色
        if (isPlayerXTurn) {
            clickedButton.setText("X");
            clickedButton.setTextColor(Color.BLUE);
        } else {
            clickedButton.setText("O");
            clickedButton.setTextColor(Color.RED);
        }

        // 切换下一轮玩家
        isPlayerXTurn = !isPlayerXTurn;
    }
}

关键细节说明:

  • 玩家回合控制:用isPlayerXTurn布尔变量记录当前下棋的玩家,默认X先行动,每次点击后自动切换回合。
  • 布局绑定事件:你需要在activity_main.xml的每个井字棋按钮标签里添加android:onClick="onTileClicked"属性,这样点击按钮才会触发上面的处理逻辑。
  • 重复点击拦截:先判断按钮文本是否为空,防止玩家重复点击同一格子,同时用Toast给出友好提示。
  • 自定义颜色可选:如果内置的红蓝颜色不符合需求,你可以用Color.parseColor("#你的十六进制颜色码")替换Color.BLUE/Color.RED,比如Color.parseColor("#0066FF")来设置更深的蓝色。

内容的提问来源于stack exchange,提问作者darmybraine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:04:38