2017-09-05 2 views
0

먼저 모든 솔루션을 사용할 수있게 시도했지만 여전히이 질문에 대한 대답을 얻지 못합니다.조각을 바꿀 때 데이터를 저장하는 방법

필자는 ViewPager를 채울 수있는 조각이 거의없는 Activity를 가지고 있는데, 이는 viewPager를 채우는 방식입니다.

fragment = getSupportFragmentManager(); 
     fragment.beginTransaction() 
       .replace(R.id.homepageVp, newFrag) 
       .addToBackStack(null) 
       .commit(); 

suppouse이 조각 A는 내가 조각 B는 여기에 위의 코드를 사용하고로 교체하는 것이 내 질문에, 그것은 조각 B에 조각 A로부터 이동하고 위의 코드 사용하여 다시 조각 A와 이동할 수 있습니다 이전 교체 (첫 번째)의 데이터가 여전히 포함되어 있습니다. 내가 조각, 안쪽

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putString(VAR_KEY, jsonResult); 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    jsonResult = savedInstanceState.getString(VAR_KEY); 
} 

사용하려고했습니다

, 이것은 onSaveInstanceState 내 활동이 다시 onActivityCreated가 실행될 때 생성 될 때 나중에 너무 jsonResult 변수를 저장하고로 이전 값을 넣어 실행하는 것이 나의 이해이다 jsonResult 변수. 그러나 그 didnt 일, 그래서 아마도 내가 만든 실수, 또는 올바르지 않은 Fragment LifeCycle에 대한 나의 이해가 있습니다.

+0

왜 당신은 JSON 어디서나 액세스를 저장하는 싱글 톤 클래스를 생성? –

+0

onActivityCreated 대신 onCreateView를 사용해 보셨습니까? – phpdroid

답변

0

당신은 단지에 offscreenPageLimit을 설정 viewPager에서 조각을 다시하지 않을 경우이 같은 viewPager :

viewPager.setOffscreenPageLimit(/*Total no of fragments*/); 
관련 문제