2012-12-16 5 views
1

여러 개의 단편으로 구성된 ViewPager를 사용하고 있습니다. (탭 탐색 + 스 와이프). 첫 번째 ListFragment에서 사용자 지정 어댑터를 사용하여 데이터 목록을 표시하고 있습니다.Android Fragments - 어떻게 데이터를 보관할 수 있습니까?

문제는 내 ArrayList의 크기가 0

어떻게 메모리에 조각의 모든 데이터를 유지할 수 있습니다, 다시 다음 탭 # 3 swipping 때, 그리고? 데이터베이스에서 다시 읽으 려하지 않습니다. 원하는 모든 것은이 조각으로 돌아갈 때 모든 것이 동일하게 유지되어야한다는 것입니다 ...

감사합니다.

답변

1

할 수 있습니다 :

  1. 호스트 조각
  2. 에서 해당하는 컨테이너 활동 및 액세스의 데이터는 단일 객체/응용 프로그램 클래스

그러나 곰에서 호스팅 몇 가지 클래스를 사용 프로세스가 종료 될 때마다 어떤 경우에도 데이터가 손실된다는 것을 명심하십시오. 데이터가 여러 프로세스에서 생성되기를 원하면 sqllite/persistence에 저장해야합니다.

+0

네, 이미 모든 데이터가 로컬 데이터베이스에 있습니다. 그래서 나는 일시적으로 그것을 저장하기 위해 액티비티를 사용할 것이라고 생각합니다. 아마 조각에 그 자체로 어떤 방법이있을 것이라고 생각했습니다. 당신의 도움을 주셔서 감사합니다. –

1

fragment guide FragmentList 예에서 찾을 수 있습니다 :이처럼 나중에 사용할 수 있습니다

@Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("curChoice", mCurCheckPosition); 
    } 

:

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     if (savedInstanceState != null) { 
      // Restore last state for checked position. 
      mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); 
     } 
} 

내가 파편에 초보자 해요하지만이 문제의 해결책처럼 보인다;) onActivityCreated은 백 스택에서 프래그먼트가 반환 된 후에 호출됩니다.

관련 문제