2013-05-27 9 views
0

내부에 목록보기가있는 조각으로 채워져있는 ViewPager가 있습니다. 요점은 내가 정말 큰 양의 데이터를 보여야하고 페이지를 만들어야하기 때문에 littel 양의 데이터 만 요청한다는 것입니다.페이지가 바뀌면 조각 내용이 변경됩니다. ViewPager

내 문제는 페이지가 변경되면 데이터를 검색하기 위해 asynctask를 호출하고이 페이지의 listview를 채울 필요가 있다는 것입니다. 어떻게하면됩니까? 작업의 onPostExecute에서 해당 목록 뷰를 어떻게 변경할 수 있습니까?

추신 : 나는 탭을위한 일식 템플릿 + 스 와이프 활동을 사용하여 코드를 게시하지 않았습니다.

+0

AsyncTask (Activity)와 단편 간의 통신에 문제가 있습니까? –

+0

네, 저의 문제입니다. – Edgar

답변

1

나는 당신의 문제가 옳은지 잘 모르겠지만, 내 마음에 제일 먼저 오는 것은 간단한 AsyncTask 대신 AsyncTaskLoader를 사용한다는 것이다. 내 (제한적으로) 경험을 통해 로더는 조각/활동 수명주기/구성 변경과 관련하여 로트을 해결합니다.

Loaders guide (Android Developers)

는 상관없이 당신은 문제가 많은 안 페이지 A의 데이터를로드 한 후 페이지 B에서 목록보기의 내용을 변경, 데이터를 얻기 위해 사용하고있는 방법 당신은 충분히이 없습니다 (페이지를 setCurrentItem으로 바꾸고 페이지 변경 이벤트를 setOnPageChangeListener으로 가로 채기), 을 SQLite 데이터베이스를 사용하는 좀 더 세련된 방식으로 변경하는 것 (btw을 사용하면 가능한 경우 결과에 캐싱).

아, 그리고 당신이 추상 클래스의 구현을 사용하는 경우 당신은 아마이 PagerAdapter 구현

로, 다른 한 페이지에서 데이터를 직접 전달할 수 있습니다 FragmentPagerAdapter의가, 잊지 말자는 각 페이지를 나타냅니다 사용자가 페이지로 돌아갈 수있는 한 조각 관리자에 지속적으로 보관되는 조각으로 사용됩니다.

(당신이 필요로하는 페이지에 대한 참조를 얻을 수 getItem(int)를 사용합니다. 을 내가 불구하고, 자신이 시도하지 않음).

희망이

편집 도움이 난 그냥 당신이 FragmentPagerAdapter를 사용하지 않는 경우 ViewPager에 표시된 현재 조각에 대한 참조를 점점 까다 롭습니다 것을 발견 :이 문제의 뿌리가 정보 인 경우 여기에서 찾을 수 있습니다 할 수있는 방법에 대한 :

Update data in ListFragment as part of ViewPager

Retrieve a Fragment from a ViewPager

Communication between ViewPager and current Fragment

+0

팁 주셔서 고마워, 내가 로더 가이드를 살펴 보겠지만, 내가 SetOnPageChangeListener와 함께 일을 할 수 있지만, 내 문제는 어떻게 "ListView 변경 조각 B"AsyncTask 말할 수 있습니다. 페이지가 변경 될 때 데이터를 정확히 호출해야합니다. – Edgar

+1

지금 문제가 있다고 생각하고 일치하도록 답변을 확장했습니다. – Rick77

+0

감사합니다!, 이것을 사용합니다. – Edgar

관련 문제