2014-05-13 2 views
0

Android에서 앱을 만들려고합니다. 사용자가 버튼을 클릭하면 버튼의 배경색이 빨간색으로 바뀝니다. 그러나 화면을 회전하면 배경색이 다시 원래 색으로 바뀝니다.화면 회전 후에 버튼 스타일과 클릭 상태를 유지하는 방법은 무엇입니까?

사용자가 버튼을 클릭 할 때 배경을 빨간색으로 변경하려면 button.setBackgroundResource(R.drawable.button_red)을 사용했습니다. onSaveInstanceState(Bundle savedInstanceState)을 사용하여 동일한 배경색을 유지하고 화면 회전 후 버튼 상태를 클릭하려고했지만이 방법에 접근하는 방법을 모르겠습니다.

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    savedInstanceState.putBoolean(ANSWER_ONE_BUTTON_ISCLICKED, true); 
    super.onSaveInstanceState(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup parent, 
     Bundle savedInstanceState) { 
    if (savedInstanceState != null) { 
     button.setBackgroundResource(R.drawable.button_red); 
     //some codes to make the button becomes clicked. 
    } 
} 

고마워요!

답변

0

버튼의 onClick에 변경하는 boolean을 유지하고 onSaveInstanceState

같은
@Override 
public void onSaveInstanceState(Bundle savedInstanceState) 
{ 
    savedInstanceState.putBoolean(ANSWER_ONE_BUTTON_ISCLICKED, isButtonOneClicked); 
    super.onSaveInstanceState(savedInstanceState); 
} 

에이

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup parent, 
    Bundle savedInstanceState) 
{ 
    if (savedInstanceState != null) 
    { 
    if (savedInstanceState.containsKey(ANSWER_ONE_BUTTON_ISCLICKED)) 
    { 
     if (savedInstanceState.getBoolean(ANSWER_ONE_BUTTON_ISCLICKED)) 
     button.setBackgroundResource(R.drawable.button_red); 
     else 
     button.setBackgroundResource(R.drawable.original_color); 
    } 
    //some codes to make the button becomes clicked. 
    } 
} 
같은 onCreateView 검사에 저장
관련 문제