2014-09-29 5 views
0

기본적으로 제목이 말하는 것. 현재 내 앱에서 방향이 변경되면 공이 다시 게임의 상단으로 재설정되지만 사용자가 기기의 방향을 변경하면 볼과 라켓이 같은 지점에 머물도록 코드를 변경하고 싶습니다. 나는 이것을 어떻게 얻을 수 있을까? 이 두 가지 방법으로 전체를 배치 할 수 있습니까?안드로이드에서 오리엔테이션이 바뀔 때 데이터 퍼시스턴스를 구현하는 가장 좋은 방법은 무엇입니까?

protected void onSaveInstanceState(Bundle outState) { 

super.onSaveInstanceState(outState); 
Log.v(TAG, "onSaveInstanceState"); 
} 

protected void onRestoreInstanceState(Bundle savedInstanceState) { 

super.onRestoreInstanceState(savedInstanceState); 
Log.v(TAG, "onRestoreInstanceState"); 
} 

(난 이미 여기에 보이지 않는 내 코드에서, 태그의 상수를 초기화 한주의).
당신은 활동에 outstate에서 볼과 라켓의 위치를, 그래서 절약 할 수

+0

은 단편 또는 활동에 있습니까? – AndroidEnthusiast

+0

그것은 활동입니다 – user3584935

답변

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) 

    } 
}