嗨,我是一個在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);
}
這裏是井字遊戲遊戲返回板狀態的方法:
public char[] getBoardState() {
return mBoard;
}
public void setBoardState(char[] board) {
mBoard = board.clone();
}
預先感謝任何幫助。
你保存前setBoardState? – 2013-03-15 22:15:10
你能解釋一下嗎? – 2013-03-15 22:36:26
您是否在調用過onSaveInstanceState之前通過調用setBoardState保存了您的主板狀態。例如,您可以在onSaveInstanceState中只記錄mBoard的第一個值,以查看是否有任何內容。 – 2013-03-15 22:44:35