2013-01-07 35 views
1

我需要幫助,我AsyncTask我打電話給我的MainActivity和更新適配器,但logcat中給出onPostExecture我在這個cheked名單NullPointerException,它不爲空,有一定的價值的Android的AsyncTask更新列表

的AsyncTask。 java的

protected void onPostExecute(List<MoviesCategory> result){ 
    super.onPostExecute(result); 
    //Here i have Error, i cheked result it's not null. 
    //On AsyncTask i have Constructor when i get Activity. 
    activity.mMoviesAdapter.addCategory(result); 
} 

Adapter.java

List<MoviesCategory> mListMovies; 

public void addCategory(List<MoviesCategory> list){ 
    mListMovies.addAll(list); 
    notifyDataSetChanged(); 
} 

我在做什麼錯,

更新

更新

FATAL EXCEPTION: main 
java.lang.NullPointerException 
    at uz.afishamedia.Adapter.MoviesAdapter.addCategory(MoviesAdapter.java:49) 
    at uz.afishamedia.Utils.LoadMovies.onPostExecute(LoadMovies.java:74) 
    at uz.afishamedia.Utils.LoadMovies.onPostExecute(LoadMovies.java:1) 
    at android.os.AsyncTask.finish(AsyncTask.java:631) 
    at android.os.AsyncTask.access$600(AsyncTask.java:177) 
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5191) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
    at dalvik.system.NativeStart.main(Native Method) 
+0

你能後整個堆棧跟蹤?如在哪裏,實際的'NullPointerException'發生在哪裏?在'onPostExecute()'或者'addCategory()'中? –

+0

這裏是一個[堆棧跟蹤](http://bit.ly/IumUod) –

+1

你也是俄羅斯人,如果你可以在俄羅斯回答問題請做:) –

回答

1

的問題是,mListMovies爲空。在適配器中初始化像這樣:

private List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>(); 
+0

感謝您的幫助! –

1

是您的mListMovies列表初始化?在您的發佈代碼中,您只能創建引用變量,但不要創建實際列表。如果引用變量未初始化,那麼調用它的方法將導致NullPointerException。因此,而不是使用:

List<MoviesCategory> mListMovies; 

用途:

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>(); 
+0

感謝您的幫助! –

1

我想你可能已經初始化失敗mListMovies
增加,這可能幫助:

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>(); 
+0

感謝您的幫助! –

1

問題是mListMovies是從一開始就無效。你需要先初始化它。

Adapter.java

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>(); 
+1

感謝您的幫助! –