基本上标题是什么。目前,如果我的应用程序中的方向发生变化,则球会重置回到游戏的顶部,但是我希望更改我的代码,以便如果用户更改设备的方向,则球和球拍将保持在同一位置。我怎么做到这一点?我会把我的全部放在这两种方法中吗?
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.v(TAG, "onSaveInstanceState");
}
和
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.v(TAG, "onRestoreInstanceState");
}
(注意我已经初步化了TAG的常量,在我的代码中没有看到) (这也是一项活动)
答案 0 :(得分:0)
你可以在活动中保存球和球拍的位置,所以在活动中:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//If it is an integer
outState.putInt(TAG, mBallPosition);
//Or use a serializable if you wish to store an actual object
outState.putSerializable(TAG, mBallPosition);
}
然后在onCreate方法中,您可以恢复状态:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
int position = savedInstanceState.getInt(TAG,0);
//set ball position
//or get the object back using outstate.getSerializable(TAG)
}
}