如何在savedPreferences中保存Button[]文本

问题描述 投票:0回答:1

我有

Button[] buttons = new Button[9];
,稍后在活动中按钮将设置为 X 或 O。我需要保存给定按钮的文本是否为 X 或 O。单击按钮时,该按钮将更改其文本文本。由于文本不是预先确定的或 editText,因此我不确定如何保存它,以便在需要销毁活动以旋转屏幕时可以恢复它。使用循环来保存所有 9 个按钮的文本会是一件事吗?

@Override
    public void onClick(View v) {
        if (!((Button)v).getText().toString().equals("")) {
            return;
        }

        String buttonID = v.getResources().getResourceEntryName(v.getId());
        int gameStatePointer = Integer.parseInt(buttonID.substring(buttonID.length()-1));

        if (activePlayer) {
            ((Button)v).setText("X");
            ((Button)v).setTextColor(Color.parseColor("#ff4a4a"));
            gameState[gameStatePointer] = 0;
            gameStatus.setText("O's Turn");
        }
        else {
            ((Button)v).setText("O");
            ((Button)v).setTextColor(Color.parseColor("#70FFEA"));
            gameState[gameStatePointer] = 1;
            gameStatus.setText("X's Turn");
        }
java android android-button
1个回答
0
投票

保存所有按钮文本的循环可以工作。但真正的问题是,这不是构建数据的好方法。您不应该将您的状态存储在您的视图中。您应该有一个名为 board 的变量,用于保存游戏中每个方块的状态,并使用它来设置您的视图。然后你只需保存轮换的棋盘变量即可。

一般来说,你的视图层不应该存储数据。应将其设置为显示存储在其他地方的数据。

© www.soinside.com 2019 - 2024. All rights reserved.