2012-02-25 2 views
0

AsyncTask을 사용하여 데이터를 가져온 다음 ListView에로드합니다. 내 코드는 다음과 같습니다 위의 코드에서AsyncTask가 완료된 후 ListView를로드하는 방법?

AsyncTaskTwitterFeeds asyncTaskTwitterFeeds = new AsyncTaskTwitterFeeds(TwitterFeedsActivity.this); 
    asyncTaskTwitterFeeds.execute(""); 
    loadList(); 

, AsyncTask이 실행되면, 흐름은, loadlist() 방법과 프로그램이 충돌 온다. 내가 발견 한 이유는 Adapter에 사용 된 배열이 여전히 채워지고 있기 때문입니다. 나는 한번만 AsyncTask을 수행 할 수 있고 그때 완료된 흐름이 loadlist() 방법으로 가야 만하는지 알고 싶습니다. 여기 LogCat 오류 :

02-25 18:50:25.879: E/AndroidRuntime(19851): FATAL EXCEPTION: main 
02-25 18:50:25.879: E/AndroidRuntime(19851): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cubix.twitterfeed/com.cubix.twitterfeed.TwitterFeedsActivity}: java.lang.NullPointerException 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.access$1500(ActivityThread.java:132) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.os.Looper.loop(Looper.java:143) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.main(ActivityThread.java:4196) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at java.lang.reflect.Method.invokeNative(Native Method) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at java.lang.reflect.Method.invoke(Method.java:507) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at dalvik.system.NativeStart.main(Native Method) 
02-25 18:50:25.879: E/AndroidRuntime(19851): Caused by: java.lang.NullPointerException 
02-25 18:50:25.879: E/AndroidRuntime(19851): at java.util.Arrays$ArrayList.<init>(Arrays.java:47) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at java.util.Arrays.asList(Arrays.java:169) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:125) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at com.cubix.twitterfeed.TwitterAdapter.<init>(TwitterAdapter.java:17) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at com.cubix.twitterfeed.TwitterFeedsActivity.loadList(TwitterFeedsActivity.java:48) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at com.cubix.twitterfeed.TwitterFeedsActivity.onCreate(TwitterFeedsActivity.java:30) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780) 
02-25 18:50:25.879: E/AndroidRuntime(19851): ... 11 more 
+0

@Ankit, done ... – kaibuki

답변

5

AsyncTaskAsyncTask 메소드 doInBackground()에 그 작업을 완료 한 후 메인 UI 스레드 에서 실행 방법 onPostExecute()있다. loadList()이 호출되어 AsyncTask의 결과로 목록을 채우는 경우 해당 메서드를 사용하여 목록을 채울 수 있습니다.

+0

예, 어떻게 처리 할 수 ​​있습니까?하지만 주된 활동에서 onPostExecute()가 아닌 방법을 찾으려고합니다. – kaibuki

관련 문제