2012-11-20 2 views
2

ViewPager에 문제가 있습니다. 활동 내가 서버에서 데이터를 다운로드 AsyncTask를 실행 시작하고 내가 호출 할 때 pager.setAdapter(currentPager)currentPagerViewPageIndicator.TabPageIndicatorViewPager가 새로 고침되지 않음 두 번째 호출 후보기 setAdapter()

pager = (ViewPager) findViewById(R.id.pager); 
     pager.setAdapter(currentPager); 

indicator = (TabPageIndicator) findViewById(R.id.indicator); 
     indicator.setViewPager(pager); 

내가 pager.setAdapter(currentPager); 먼저 2 페이지를 호출 AsyncTask를 마무리 다운로드 데이터가 비어있을 때, 다른 페이지도 OK 라벨 빈 조각입니다. 먼저 적절한 데이터로 페이지를 새로 고치는 방법은 무엇입니까? 나는 NULL 포인터

E/AndroidRuntime(23263): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.windmobile.rbt.android/com.windmobile.rbt.android.category.CategoryActivity}: java.lang.IllegalStateException: ViewPage 
r does not have adapter instance. 
E/AndroidRuntime(23263):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
E/AndroidRuntime(23263):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
E/AndroidRuntime(23263):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
E/AndroidRuntime(23263):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
E/AndroidRuntime(23263):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(23263):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(23263):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime(23263):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(23263):  at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(23263):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(23263):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime(23263):  at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(23263): Caused by: java.lang.IllegalStateException: ViewPager does not have adapter instance. 
E/AndroidRuntime(23263):  at com.viewpagerindicator.TabPageIndicator.setViewPager(TabPageIndicator.java:205) 
E/AndroidRuntime(23263):  at com.windmobile.rbt.android.category.CategoryActivity.onCreate(CategoryActivity.java:115) 
E/AndroidRuntime(23263):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
E/AndroidRuntime(23263):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
E/AndroidRuntime(23263):  ... 11 more 
+2

답변을 얻었습니까? 나는 당신의 문제와 비슷한 것을 직면하고있다. – hemu

+0

답변을 얻었습니까? – Rudi

답변

1

망가 어댑터를 재설정을 얻었 기 때문에 나는 pager.setAdapter(currentPager);없이 된 setContentView를 호출 할 수 없습니다. 오히려 비동기 작업이 끝나면 어댑터의 데이터 소스를 업데이트하고 어댑터에서 notifyDataSetChanged()을 호출하십시오.

+0

currentPager.notifyDataSetChanged()를 추가합니다. onSuccess()의 AsyncTask에서 pager.getAdapter()를 시도해보십시오. notifyDataSetChanged(); 하지만 작동하지 않습니다. 내가 잘못하고 있니? – plancys

+0

어떻게 데이터를 어댑터에 삽입합니까? –

+0

Activity에서 어댑터에 대한 변수를 만들고, 먼저 비어 있습니다 (null이 아니지만 빈 Fragments가 있음). setContentView를 호출하고 AsyncTask가이 변수를 변경하면 어댑터에서 notifyDataSetChanged()를 호출합니다. – plancys

관련 문제