[英]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.