簡體   English   中英

保存板的狀態以進行定向

[英]save the state of the board for orientation

嗨,我是android的新手,正在學習tictactoe教程。 我需要保存電路板的狀態,以便當我改變方向時,電路板會顯示完整的字符。 這是代碼段-反復嘗試字符串已保存並顯示,但板上沒有X和O。 我不知道為什么

MainActivity.java

           mGame = new TicTacToeGame();

       if (savedInstanceState == null) { 
            startNewGame();
            } 
            else { 
             // Restore the game's state                    
            mGame.setBoardState(savedInstanceState.getCharArray("board"));              
            mGameOver = savedInstanceState.getBoolean("mGameOver"); 
            mInfoTextView.setText(savedInstanceState.getCharSequence("info")); 
            mHumanWins = savedInstanceState.getInt("mHumanWins"); 
            mComputerWins = savedInstanceState.getInt("mComputerWins"); 
            mTies = savedInstanceState.getInt("mTies"); 
            mTurn = savedInstanceState.getChar("mTurn"); 
            } 
            displayScores(); 

       }

        @Override
    protected void onSaveInstanceState(Bundle outState) {
     super.onSaveInstanceState(outState);
     outState.putCharArray("board", mGame.getBoardState());
     outState.putBoolean("mGameOver", mGameOver);
     outState.putInt("mHumanWins",Integer.valueOf(mHumanWins));
     outState.putInt("mComputerWins",Integer.valueOf(mComputerWins));
     outState.putInt("mTies", Integer.valueOf(mTies));
     outState.putCharSequence("info", mInfoTextView.getText());
     outState.putChar("mTurn", mTurn);
    }

以下是tictactoe游戲中返回棋盤狀態的方法:

    public char[] getBoardState() {
    return mBoard;
}

public void setBoardState(char[] board) {
    mBoard = board.clone();
}

在此先感謝您的幫助。

我認為問題可能出在您的setBoardGame方法中。 clone()方法返回類型“ Object”,但是mBoard類型為“ char []”(字符數組)。 因此,您需要從Object類型轉換為char []類型

嘗試這個:

public void setBoardState(char[] board) {
    mBoard = (char[]) board.clone();
}

嘗試

public char[] getBoardState() {
return mBoard.clone();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM