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

如何在Android Studio中实现井字棋游戏的玩家获胜分数保存与显示?

井字棋玩家1累计获胜次数实现方案

核心优化思路

放弃用列表存储分数的方案,改用全局变量直接记录获胜次数,搭配TextView(而非EditText,EditText为输入控件,用于展示静态数据易引发异常)来显示次数,若需要重启APP后保留数据,可结合SharedPreferences实现持久化。

具体实现步骤

  • 全局变量声明:在Activity或ViewModel中定义private int player1Wins = 0;,用于实时记录玩家1的获胜次数。
  • 获胜触发更新:当检测到玩家1获胜时,执行player1Wins++;,随后同步更新界面显示。
  • 界面更新操作:找到布局中用于展示次数的TextView(假设id为tv_player1_wins),调用tv_player1_wins.setText("玩家1获胜次数:" + player1Wins);完成显示更新。
  • 崩溃规避要点:
    • 确保控件初始化完成后再调用setText方法,禁止在onCreate生命周期之前操作UI控件
    • 避免使用EditText展示静态数据,改用TextView更安全稳定
    • 若之前因列表操作崩溃,检查是否存在列表为空时调用get方法、或未初始化控件就赋值的情况

可选:持久化获胜次数

若需要APP重启后保留获胜数据,可使用SharedPreferences:

  • 保存次数:
SharedPreferences sp = getSharedPreferences("TicTacToe", MODE_PRIVATE);
sp.edit().putInt("player1Wins", player1Wins).apply();
  • 读取初始次数(在Activity的onCreate方法中):
SharedPreferences sp = getSharedPreferences("TicTacToe", MODE_PRIVATE);
player1Wins = sp.getInt("player1Wins", 0);
tv_player1_wins.setText("玩家1获胜次数:" + player1Wins);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:55:21