2016-10-28 4 views
-2

SavedInstanceState에서 여러 값을 전달하려고합니다. 이 작업을 수행 할 수 있습니까?SavedInstanceState에서 여러 값을 전달하는 방법

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (savedInstanceState != null) { 
     array_counter = savedInstanceState.getInt(KEY_INDEX); 
     answer = savedInstanceState.getInt(SAVED_ANSWER); 
     value = savedInstanceState.getInt(SAVED_VALUE); 
    } 
+1

명백한 이유 :'KEY_INDEX.equals (SAVED_ANSWER) && SAVED_ANSWER.equals (SAVED_VALUE)'... 아니면'onSaveInstanceState'가 저장을위한 것이라고 생각합니다 (이것은 사실입니다 ...하지만 특정 시스템에서만 사용됩니다 이유) ... – Selvin

+0

KEY_INDEX, SAVED_ANSWER, SAVED_VALUE 값은 무엇입니까? –

답변

0

BundleHashMap<String, Object>에 가깝다 : 한 OnCreate에서 그들을받을 때

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putInt(KEY_INDEX, array_counter); 
    savedInstanceState.putInt(SAVED_ANSWER, answer); 
    savedInstanceState.putInt(SAVED_VALUE, value); 
} 

하지만 그들은 모두 같은 값을 가지고있다. 따라서 여러 값을 넣을 수 있습니다.

대부분의 경우, 다음 중 하나를

  • 귀하의 테스트, 또는

  • (예를 들어, 당신이 savedInstanceStatenull하지 않고, 그래서 필드는 디폴트 값이 시나리오를 테스트하지 않음) 결함이

    키가 동일하므로 Bundle에 하나의 순수 항목 만 저장하거나

  • 값을 모두에 입력하면 동일하게 나타납니다

당신은 onCreate()onSaveInstanceState()에 중단 점을 넣어 당신이 두 곳에서 작업하는 Bundle을 검사 할 수 있습니다.

관련 문제